CheckFrequency(userId uint64) bool
返回true检查通过,false触发频控
visited_{user_id} >3触发
离线用户key为空
数据结构:key-value
取值:
1=在线
2=离开
3=隐身(VIP功能)
数据结构:list
数据结构:hashmap
简单的设计如下:如需其他功能,需要扩展,用户(主键,账号,密码,邮箱,..)
好友关系(所属者ID,好友ID)
聊天记录(主键,所属者ID,好友ID,时间,内容,..)
create table users
(uid number not null primary key,
uname varchar2(50) not null,
pwd varchar2(20) not null,
email varchar2(50) not null,
...)
create table friends
(owerid number not null,
friendid number not null,
constraint fk_owerid poreign key(owerid) references users(uid),
constraint fk_friendid poreign key(friendid) references users(uid),
constraint pk_friendid_owerid primary key(owerid,friendid)
)
create table records
(rid number not null primary key,
owerid number not null,
friendid number not null,
rdate date default sysdate,
rcontents varchar2(4000),
constraint fk_owerid_r poreign key(owerid) references users(uid),
constraint fk_friendid_r poreign key(friendid) references users(uid),
..
)
对于关系数据库,可以设一个这样的字段,这个字段里存放了李四的所有好友,每个好友以“,”分隔;对于非关系数据库,比如说健值数据库,可以使用一个大型的HASH表来存放,李四的所有好友以一个链接的方式串起来
。
比如:
linker表示链接
hash(李四)=linker(王五、张三、黄光、李明)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)