社交网络关系 mysql架构_社交网站的用户关系数据是怎么设计的,比如关注数,黑名单数,粉丝数等等。...

本文探讨了如何设计数据库表来存储用户之间的关注、粉丝和黑名单关系。提出了使用一个表来存储不同类型的用户关系,通过rel_type字段区分关注、粉丝和黑名单,并给出了具体的SQL操作示例,如插入关注记录和查询用户粉丝数。
摘要由CSDN通过智能技术生成

text类型?是存些什么东西呢?很好奇。另外 private key 是笔误还是?

你列出的这个 demo 里,我看不出来如何获得用户的关系数据。我自己设计时(当然也是我认为合理的方式)是这样的(不完全照搬我自己的,是根据你的这个表改了一下):

CREATE TABLE relation (

id PRIMARY KEY AUTO_INCREMENT, //主键,自增

from_user_id big integer, // 用户 A 的 id

to_user_id big integer,// 用户 B 的 Id

rel_type enum(1,2) //关注数据

);

拉黑/粉丝/关注,在数据库里,存的都是一个映射关系的数字。比如,拉黑是 1,粉丝/关注是一个东西,是 2。那么,一条记录里的关键数据是:

from_user_id // 本条记录是哪个用户发起

to_user_id // 本条记录的接受方是哪个用户

rel_type // 发起者对接受者,做了什么事情?存事情的类型

场景举例:

用户 A 关注用户 B

插入数据:

INSERT INTO relation (rel_type, from_user_id, to_user_id) VALUES(2, A.id, B.id)

用户 A 的粉丝数:

select COUNT(*) from relation

where rel_type=2 and to_user_id=A.id;

黑名单同理。

这是按照你给出的表的方式处理的。我自己在做设计的时候,其实是给 关注/粉丝 建了一张表,黑名单又建一张表。按自己的需求和习惯来就好了,无所谓选哪种。

希望有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值