zeyexe
V2EX  ›  编程

大家怎么更新多对多关系表中的关系?

  •  
  •   zeyexe · Jan 18, 2021 · 2472 views
    This topic created in 1972 days ago, the information mentioned may be changed or developed.
    举个例子,现在有个文章-分类的 article_category 多对多关系表,当编辑一篇文章,更新文章的分类之后,怎么更新这个关系表?

    一种方式是先直接 delete 相应 article_id 的全部行,然后再 insert 多行 article_id - category_id 的关系。

    还有一种方式是先查询得到相应 article_id 的全部行,然后比较当前对应关系和待更新的对应关系,然后删除不再需要的对应关系,新增没有的对应关系。

    哪种方式比较好?还有没有其他更好的实现方式?
    3 replies    2021-01-19 08:27:12 +08:00
    qiayue
        1
    qiayue  
    PRO
       Jan 18, 2021   ❤️ 1
    个人习惯是先删后插入,代码可以简单点
    zeyexe
        2
    zeyexe  
    OP
       Jan 18, 2021
    @qiayue #1 我也觉得这种方式比较直观。但是不知道有没有什么一次就能更新的方式,而不是这样先删再增。
    mcfog
        3
    mcfog  
       Jan 19, 2021 via Android   ❤️ 1
    骚操作是加上联合 unique 索引配合严格自增的版本号(或微秒时间戳什么的),先 insert on duplicate update 版本号=x,后 delete 版本号<x
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2709 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 11:05 · PVG 19:05 · LAX 04:05 · JFK 07:05
    ♥ Do have faith in what you're doing.