-- 用户表(如果这个表数据相当多,可以用分区表) 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好友用字串连成一条记录(这也太吝啬啦) |