240 发简信
IP属地:广东
  • 记录下beego 多对多模型查询的吐血经历

    最近写一个博客练手,文章功能需要增加一个标签的功能,一篇文章可以有多个标签,一个标签可以被多个文章使用,于是就想用m2m模型实现,过程如下 文章模型简化如下: 这里说一下这个...

  • 我想问下作者,beego orm多对多关联查询时这样明显是不够优雅的。(多条sql)
    example:
    A表多对多关联B表

    A(1)->B(1),B(2),B(3),B(4)
    A(2)->B(1),B(2),B(3),B(4)
    A(3)->B(1),B(2),B(3),B(4)

    查询A表All()时生成13条sql
    除了一条查A之外,其余12条全是查询B,而且还有重复查询相同ID的B。

    而更优雅的sql是(类似Laravel的with)
    查所有A,再整理A列表中B主键(1,2,3,4),将所有的B主键用in的sql一条全部查询出来,在通过程序内部整合分配到结果A
    这样只有两条sql
    A all
    B in (1,2,3,4)

    关于本文问题作者有深入了解其他解决方案吗,我是更想实现类似Laravel with的方案,涉及到多对多查询的场景太多了。

    记录下beego 多对多模型查询的吐血经历

    最近写一个博客练手,文章功能需要增加一个标签的功能,一篇文章可以有多个标签,一个标签可以被多个文章使用,于是就想用m2m模型实现,过程如下 文章模型简化如下: 这里说一下这个...