数据库:PostgreSQL 10
假设有 1000w 个用户,且用户还会增长
有 10w 个文章,且文章也会不停增长,但文章增加较慢
怎么设计数据库,来存储,每个用户收藏的文章呢
我目前的方案是, 新建了一个中间表 user_article
字段有:
id // 自增 id
user_id //用户 id
article_id // 已收藏文章 id
但是这样的话, 随着时间的推移,这个中间表 user_article 就会有 几百亿 甚至更多的记录
另外一个方案,是借助 PostgreSQL 10 的 json 字段功能,重新设计中间表 user_article
字段有 :
id // 自增 id
user_id //存用户 id
article_json // 该用户收藏的所有文章的 id 集合,用 json array 表示
但是这样的话,article_json 里面的 array 长度,可能会有 10w 那么大,当然实际情况中,几乎没有用户会收藏所有文章
想问问大家, 该如何设计呢, 对于实时性要求不高, 延迟个 1 秒都是可以接受的
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.