微博相互关注互粉mysql表实现_新浪微博的“关注功能”数据库是如何设计的
展开全部你好。方法有二个:我觉得是这样设计的e69da5e887aa62616964757a686964616f31333335343362一个字段记录他所关注的好友信息应该是json的然后去数据库查最新的就是更新就是uchome就是这么干的--用户表(如果这个表数据相当多,可以用分区表)createtableuserinfo(useridnumber(38,0),--可以用序列递增...
展开全部
你好。方法有二个:
我觉得是这样设计的e69da5e887aa62616964757a686964616f31333335343362
一个字段记录他所关注的好友信息
应该是json的
然后去数据库查最新的就是更新就是
uchome就是这么干的-- 用户表(如果这个表数据相当多,可以用分区表)
create table userinfo
( userid number(38,0), -- 可以用序列递增值也成,自己看着办
username varchar2(60),
phone varchar2(20),
address varchar2(20),
sex char(1),
cdate date default sysdate
-- 其他字段,自己添加
);
alter table userinfo add constraints pk_userinfo primary key(userid);
-- 用户关注信息表(如果这个表数据相当多,可以用分区表):
create table userattention
( userid number(38,0), -- 用户ID
attention_userid number(38,0), -- 被关注的用户ID
status number(18,0), -- 关注状态(或者说关注等级,自己定义:0代表什么,1代表什么)
cdate date default sysdate, -- 创建时间
udate date default sysdate -- 修改时间
-- 其他字段,自己添加
);
-- 为保持数据完整性:不管是“用户ID”还是“被关注的用户ID”其ID必须在userinfo表中存在!
alter table userattention add constraints pk_userattention primary key(userid,attention_userid);
alter table userattention add constraints fk_userattention_userid foreign key (userid) references userinfo(userid);
alter table userattention add constraints fk_userattention_att_userid foreign key (attention_userid) references userinfo(userid);
userattention表中一个userid对应该可能有N条记录(而不像你说的:用一条记录,其不同的attention_userid 用逗号隔开,这样设置是不合理的)
-- 好比QQ号,我的QQ可以添加N个QQ好友,但我想:腾迅应该不会将我这N个QQ好友用字串连成一条记录(这也太吝啬啦)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)