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

2021-01-18 22:46:26 +08:00
 zeyexe
举个例子,现在有个文章-分类的 article_category 多对多关系表,当编辑一篇文章,更新文章的分类之后,怎么更新这个关系表?

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

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

哪种方式比较好?还有没有其他更好的实现方式?
1743 次点击
所在节点    编程
3 条回复
qiayue
2021-01-18 22:49:34 +08:00
个人习惯是先删后插入,代码可以简单点
zeyexe
2021-01-18 22:52:34 +08:00
@qiayue #1 我也觉得这种方式比较直观。但是不知道有没有什么一次就能更新的方式,而不是这样先删再增。
mcfog
2021-01-19 08:27:12 +08:00
骚操作是加上联合 unique 索引配合严格自增的版本号(或微秒时间戳什么的),先 insert on duplicate update 版本号=x,后 delete 版本号<x

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/746096

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX