在处理一些像“收藏”或“关注”等问题的时候,更倾向于是一张表建立关系还是一张表多个字段?

2015-05-19 12:55:00 +08:00
 cevincheung

比如收藏啊

文章表:

articleid title
1 some title
2 some title

一个表,加一个字段这么存

userid favorite
1 1,2
--- 获取一篇文章的收藏用户列表
select userid from users where find_in_set(1,favorite)

还是:

userid articleid
1 1
1 2
--- 获取一篇文章的收藏用户列表
select userid from favorite where articleid = :articleId
1459 次点击
所在节点    问与答
3 条回复
lincanbin
2015-05-19 13:06:34 +08:00
后者,前者处理起来不方便。
后者可以直接left join文章表,一条SQL就可以实现查询收藏文章列表,并且在量大了之后依旧有不错的性能。
lincanbin
2015-05-19 13:07:47 +08:00
无论是实现难度还是性能,都是后者占优!
nekoyaki
2015-05-21 19:28:49 +08:00
第一种不如存储在redis里面了。

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

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

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

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

© 2021 V2EX