我最近一直在玩镜头,发现它们非常适合它们的预期用途 - 挖掘复杂的数据结构.但我最欣赏他们的一个领域是数据库访问(特别是sqlite,但我认为我的问题推广到大多数数据库),但我看不出任何方法来编写不会牺牲很多钱的镜头性能或粒度.
如果我从DB到表,从表到行,从行到列编写镜头(或者我认为可能是Prism,根据NULLable字段?),那么每个步骤都会导致数据库访问,意味着应该是一次访问至少4.
在另一方面,如果我的目标是地图DB访问1:1与透镜/棱镜的用途,我得到大做,一切镜头不能被分解成更小的碎片时,我不希望只看到是什么列在表格中,等等.
使用具有DB的镜头是否有意义,如果是这样,我错过了一种明显的方法来避免重复工作以避免不必要的DB访问?
目前,我有一个path_concat(char* path_fragment_a, char* path_fragment_b)功能,它只是串接在一起path_fragment_a,PATH_DIVIDER和path_fragment_b.(PATH_DIVIDER在#ifdef块中是#defined,所以它\在Windows和/其他任何地方.)
但我不禁想到这似乎:
谷歌搜索它只是发现了很多关于Python的结果os.path.join(这将是理想的,除了它的Python,而不是C),所以我想知道是否有人知道更清洁/更标准的解决方案.