web开发之即时通讯数据库设计
2015-03-07 00:05
246 查看
很多web应用带有站内信的功能,或者类似于新浪微博一样的聊天功能,这篇文章针对即时通讯的数据库设计发表一下自己的看法。
首先说一下需求:设计一个IM系统,实现私信聊天,群聊功能,并可以发送图片或者其他附件。
设计思路:把开始一个聊天会话想象成开一个聊天室,如果是私信聊天,那么这个聊天室里面就只有两个人,如果是群聊,那么这个聊天室就有多个人。这个过程中涉及到的三个实体,聊天室,参与者和聊天内容。
聊天室:房间号,创建人(聊天发起者),房间名(第一条信息),房间人数,参与者编号,创建时间
参与者:房间号,参与者编号,发送消息总数,未读消息总数,该用户最后的会话时间,该房间最后会话时间,是否删除
聊天内容:内容编号,房间编号,内容发起者编号,内容,发起时间,是否删除,附件
分析:聊天室实体中,参与者编号用的是字符串类型的数据类型,如果编号为1的用户跟编号为2的用户私信聊天,则记录这两个用户的编号,记录成1-2;假如编号为1,编号为2和编号为3的用户群聊,则记录成1-2-3;
参与者实体中,主键是(房间号,参与者编号);
聊天内容中,附件可以另外设计一张附件表,存储整个系统的附件信息,这里存储附件在附件表的唯一编号。
物理模型如下:
聊天室:im_room
参与者:im_member
聊天内容:im_content
首先说一下需求:设计一个IM系统,实现私信聊天,群聊功能,并可以发送图片或者其他附件。
设计思路:把开始一个聊天会话想象成开一个聊天室,如果是私信聊天,那么这个聊天室里面就只有两个人,如果是群聊,那么这个聊天室就有多个人。这个过程中涉及到的三个实体,聊天室,参与者和聊天内容。
聊天室:房间号,创建人(聊天发起者),房间名(第一条信息),房间人数,参与者编号,创建时间
参与者:房间号,参与者编号,发送消息总数,未读消息总数,该用户最后的会话时间,该房间最后会话时间,是否删除
聊天内容:内容编号,房间编号,内容发起者编号,内容,发起时间,是否删除,附件
分析:聊天室实体中,参与者编号用的是字符串类型的数据类型,如果编号为1的用户跟编号为2的用户私信聊天,则记录这两个用户的编号,记录成1-2;假如编号为1,编号为2和编号为3的用户群聊,则记录成1-2-3;
参与者实体中,主键是(房间号,参与者编号);
聊天内容中,附件可以另外设计一张附件表,存储整个系统的附件信息,这里存储附件在附件表的唯一编号。
物理模型如下:
聊天室:im_room
参与者:im_member
聊天内容:im_content
相关文章推荐
- 一个小型即时通讯项目的开发经验4--模块设计与功能分配
- web开发之商城订单模块数据库设计
- web策略类游戏开发(五)数据库表设计
- 即时通讯数据库好友关系(一对多)应该怎样设计?
- 一个小型即时通讯项目的开发经验2--总体设计
- Java Web 开发环境搭建与数据库设计1
- Web网站评论功能数据库设计和开发
- 我的第一个python web开发框架(35)——权限数据库结构设计
- web开发之附件数据库设计
- iOS 开发 XMPP即时通讯项目开发(仿微信)-详解之xmpp环境搭建(数据库/客户端/服务器)
- web策略类游戏开发(五)数据库表设计
- 一个小型即时通讯项目的开发经验3--模块设计与功能分配
- iOS 开发 XMPP即时通讯项目开发(仿微信)-详解之xmpp环境搭建(数据库/客户端/服务器)
- 一个Web系统OA界面设计和开发
- 关于Web设计、开发中window对象的资料
- Web开发设计:DisplayTag应用指南
- 利用数据库进行通讯设计
- 发一个招聘贴,求实时数据库开发设计人员
- 一个Web系统的界面设计和开发.1
- web开发时读取web.config中的数据库连接字符串的方法