聊天系统-数据库设计

聊天系统-数据库设计,第1张

采用Redis进行数据存储,主要包括频控、限流、用户表、在线用户表、聊天消息表(redis list实现消息队列)、好友表(TODO)

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),

..

)

1、定义聊天消息结构:ChatMessageInfo{Name,Content,SendTime}

2、定义聊天室: ChattingRoom:{VOID SendMessage(string name,string content)IList<ChatMessageInfo>GetPageMessage(int pageNo,int pageSize)}

3、创建一个数据库和表。表的字段结构 和 聊天消息的属性结构一样

4、聊天室网页加载时,用ChattingRoom.GetPageMessage来获取最新的消息,然后将消息列表绑定到Gridview里面,一个文本框让用户发消息,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9566128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存