今天以腾讯QQ为例(主要为聊天部分),来学习系统建模。
1.需求清单
好友之间互相发消息
QQ群内与群友交流
用户和消息管理
2.需求总结,即目标
QQ的使用者:用户
QQ的功能:一对一聊天和多对多群聊两种情况
我们现在对以上需求和功能进行总结输出。首先,qq在没有注册的情况下是不能使用的,所以我们的用户没有游客的概念。那我们的用户一共可以分为两种,即普通的软件使用者和对普通用户进行管理的管理员。
我们从以上需求中可以总结出哪些功能呢?
对于普通用户而言:
1.加好友,即查看用户信息并添加用户之间的关联关系。
2.解除好友,即解除用户之间的关联。
2.发消息,即用户1v1交流。
3.历史消息,即用户的消息记录。
4.创建群组,即作为群组创建者。
5.加入群组,即加入群组进行用户NvN交流。
6.解除群组,即解除自己创建的群组。
对管理员而言:
1.管理用户,即禁止用户的功能,可以为禁止发消息,禁止加好友,禁止查看历史消息,禁止加群等。
2.管理消息,即查看或者删除用户或群组历史消息。
3.管理群组,即创建,封禁,解除群组等
除了以上显性的需求外,可能还存在一些隐性的需求,可能是客户以后会提出,或者开发过程中进行补充,例如用户的黑名单,用户的好友分组,普通用户在群组内的权限等,我们此处暂且不讨论。
3.将以上两步的需求和功能作为输入,我们可以得到下方的用例图
4.根据以上用例图可以建模
5.根据以上模型图可以建表
用户表 User: id,name, status,tm
id: 编号,可用于添加好友
name: 用户昵称
status: 用户状态,0-被封禁 1-正常
tm: 创建时间
用户关系表UserRelate: id, user1Id, user2Id, status, tm
user1Id: 一号用户
user2Id:二号用户
status: 关系状态 0-已解除 1-正常
tm: 建立关系的时间
群组表Group: id, userId, name, status, tm
userId: 群组创建者,即群组管理员
name: 群组名称
status: 群组状态 0-已封禁 1-正常
tm: 群组创建时间
群组成员表GroupUser: id, groupId, userId, status, tm
groupId: 群组id
userId: 用户id
status: 用户在当前群组的状态 1-正常 0-被禁止发言
tm: 加入群组的时间
管理员表:Employee: id, name, password
name: 账号
password: 密码
原文:https://www.cnblogs.com/gxLog/p/14387027.html