社交网站的用户关系数据是怎么设计的,比如关注数,黑名单数,粉丝数等等。
我见过一种设计,在数据库里面有一张用户关系表,表结构如下
CREATE TABLE relation (
relation_id private key AUTO_INCREMENT,//关系id
relation_fans text,//粉丝数据
relation_black text,//黑名单数据
relation_action text//关注数据
);
这样的设计有什么用意,如果要取得用户的关系数据 怎么取得?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
text
类型?是存些什么东西呢?很好奇。另外private key
是笔误还是?你列出的这个 demo 里,我看不出来如何获得用户的关系数据。我自己设计时(当然也是我认为合理的方式)是这样的(不完全照搬我自己的,是根据你的这个表改了一下):
拉黑/粉丝/关注,在数据库里,存的都是一个映射关系的数字。比如,拉黑是 1,粉丝/关注是一个东西,是 2。那么,一条记录里的关键数据是:
from_user_id
// 本条记录是哪个用户发起to_user_id
// 本条记录的接受方是哪个用户rel_type
// 发起者对接受者,做了什么事情?存事情的类型场景举例:
用户 A 关注用户 B
插入数据:
用户 A 的粉丝数:
黑名单同理。
这是按照你给出的表的方式处理的。我自己在做设计的时候,其实是给 关注/粉丝 建了一张表,黑名单又建一张表。按自己的需求和习惯来就好了,无所谓选哪种。
希望有用。
楼上说的差不多了
高并发下的话 最好把粉丝数 放到redis里面哦~