介绍
这篇文章给大家分享的是有关微豆瓣关注功能数据库是怎么设计的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
微豆瓣关注功能部分的数据库是如何设计的,比如用户一关注用户B,是不是就在数据库中生成一条关注记录(估且不管它的关注表具体字段都有什么);还是说在一个用户表中修改关注用户身份证这么个字段(可能会存在,将关注的用户ID,以逗号分隔的形式存在这个字段中),是这两种方式中的哪一种呢,还是说是别的方式?
<强>微豆瓣关注功能数据库是如何设计的强>
一个字段记录他所关注的好友信息,应该是json的,然后去数据库查最新的就是更新就是。
<强>微豆瓣代码强>
,,用户表(如果这个表数据相当多,可以用分区表) create table 用户信息 (,userid 数字(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 关键(userid); ,, ——,用户关注信息表(如果这个表数据相当多,可以用分区表): create table  userattention (,userid 数字(38岁,0),,,,,,,,,,,,,,用户ID attention_userid 才能;数字(38岁,0),,,,被关注的用户ID status 才能;数量(18岁,0),,,,,,,,,,,,,,关注状态(或者说关注等级,自己定义:0代表什么,1代表什么) cdate 才能date default  sysdate,,,,,,,创建时间 udate 才能date default  sysdate ,,,,,,修改时间 ,,,,其他字段,自己添加 ); ,, ——,为保持数据完整性:不管是“用户ID”还是“被关注的用户ID”其ID必须在用户信息表中存在的! alter table  userattention add constraints  pk_userattention primary 关键(userid, attention_userid); alter table  userattention add constraints  fk_userattention_userid foreign key (userid), references 用户信息(用户标识); alter table  userattention add constraints  fk_userattention_att_userid foreign key (attention_userid), references 用户信息(用户标识);
userattention表中一个用户id对应该可能有N条记录(而不像你说的:用一条记录,其不同的attention_userid 用逗号隔开,这样设置是不合理的)
——,好比QQ号,我的QQ可以添加N个QQ好友,但我想:腾迅应该不会将我这N个QQ好友用字串连成一条记录