V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hahaFck
V2EX  ›  程序员

大家有为了减少访问数据库的次数而使代码的逻辑复杂度增加的么?

  •  
  •   hahaFck · Jul 16, 2021 · 1088 views
    This topic created in 1756 days ago, the information mentioned may be changed or developed.
    举个例子:
    比如说有个列表,有 50 多个组织,要在列表中对每个组织统计一些数字,这些数字是分散在各个表中,通过逻辑计算出来的。

    1.通过循环组织列表,对每个组织进行查询计算,这样是最简单的,但是至少需要访问数据库 50 次。

    2.通过一个 sql 将所有组织的数据都查出来,之后在计算。如果能按照组织 id 进行 group by 也算简单,如果不能 group by,就要对所有的数据进行循环处理,放到 Map 里面,key 是组织 id,然而 value 可能是个嵌套了好几层的 Map<String, Map>,取数的时候又要判断 key 是否存在,啰嗦代码一大堆,越看越恶心......

    3.也可以通过存储过程实现,不过存储过程的语法怪异,维护也不好维护。
    dethan
        1
    dethan  
       Jul 16, 2021 via Android
    当然选 2,在合理的情况下,尽量减少访问数据库
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3424 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 12:14 · PVG 20:14 · LAX 05:14 · JFK 08:14
    ♥ Do have faith in what you're doing.