当前位置:首页 > 微博运营 > 正文

微博数据库设计,微博好友关注和推送功能的数据库设计是怎么实现的

2021-07-29 16:41:06 暂无评论 微博运营

微博 好友关注和推送功能的数据库设计是怎么实现的底层设计

我虽然没参与过微博底层的开发,如果是我设计这个数据库的话我会用2张表解决这个问题
第一张表 用户信息表, 主要依靠ID主键识别用户

第二张表,关系表, 关键col3列 前两列 分别是 好友源 和 好友目标 ,第三列是 关系状态

然后加了好友 只要不断地 在第二张表加入 新行 比如

用户A,用户C ,好友
用户A,用户B ,黑名单
用户B,用户A, 好友

如果是QQ这类 检索关系时候 0, 1字段一起搜索ID 就是互为好友
微博这种 就是单向的 关注。
大概就是这样的模型

可能的问题是用户过多时候表2可能会非常巨大。检索速度可能会受影响
用资源换效率的方式
还可以每个用户一张表

有谁知道怎么设计微博的数据库啊,我要很详细的内容啊!主要是要分几个表来进行阐述!

有程序的,不需要自己设计这么费劲

网站接入微博和qq登录数据库表怎么设计最佳

你好。方法有二个:
我觉得是这样设计的
一个字段记录他所关注的好友信息
应该是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);

博客主人破茧短视频培训
破茧短视频为你分享抖音、快手等短视频平台的视频拍摄、剪辑和运营技巧,另有短视频培训学习教程,海量干货助你玩转短视频运营!。
  • 92417 文章总数
  • 5046222访问次数
  • 2218建站天数