个人博客数据库设计问题

2021-03-13 20:32:06 +08:00
 Zrehtt

主要是文章表 article 和标签表 tag 之间的关系应该是多对多的关系,如果我想添加或者更新文章,那 tag 怎么办?这两个表应该如何设计? SQL 语句如何写?

2201 次点击
所在节点    程序员
8 条回复
binjoo
2021-03-13 20:33:27 +08:00
加一张关联表。
lizheming
2021-03-13 20:34:55 +08:00
captain2011
2021-03-13 20:39:12 +08:00
简单方法:articles 表加一个字段 tag_ids 存 1,2,3 这样的字符串,然后到时候特殊处理就行
复杂点:多一个 article_tags 中间表,多 join 查询一下就行
BeautifulSoap
2021-03-13 20:40:07 +08:00
单独一个 article_tag_relationship 表啊,就两个 column
article_id | tag_id

这样一个表你写 sql 语句还难吗

ORM 处理多对多关系也都是这样的
qiayue
2021-03-13 21:00:17 +08:00
用中间表记录关系,每次更新文章,如果标签有变动,有两种办法:
1 、逻辑简单:先把该文章 ID 对应的所有标签 ID 关系都删除,重新插入新的对应关系;
2 、逻辑复杂:比较新老对应关系,删除不再使用的关系,插入新的关系,不改的关系继续保留;

建议用方法 1
Zrehtt
2021-03-14 17:46:59 +08:00
嗯,说的很明白了,非常感谢
dongtingyue
2021-03-14 21:08:21 +08:00
我是这样弄的,文章表,分类表,关联表,分类表只做增加不做删除。文章保存的时候分类转 id 然后把原来的关联全删,添加新的关联。
meshell
2021-03-15 09:16:16 +08:00
我直接用得 wordpress 的表

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

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

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

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

© 2021 V2EX