机房重构之--数据库设计说明书
2015-11-22 12:12
281 查看
前言:机房重构,需要按照三层架构的理念来设计程序,需要重新设计数据库,而数据库设计说明书则是数据库设计的依据。
现摘录部分数据库设计说明书内容如下:
1、数据库总表:
2、约定
(1)数据库名
数据库名采用首字母大写,避免系统保留的表名。此次使用ChargeSystem
(2) 数据库表
使用T_表名,表名采用首字母大写。例如用户表:T_User
(3)表字段
第一个字母小写,后面的单词或拼音,采用第一个字母大写,命名规则只来自于业务,尽量表达出列的含义。命名一般为名词或形容词。
(4)主键
主键名 = PK + “_”+ 表名
(5)外键
外键名 = FK + “_” + 表名
(6)索引
索引名 = IDX + “_” + 表名 + 相关字段/索引含义。
3、结构设计
(1)ER图:
(2)表信息
学生表详细信息:
卡表详细信息:
用户表详细信息:
基本数据详细信息:
充值表详细信息:
退卡表详细信息:
账单表详细信息:
上机表详细信息:
工作表详细信息:
4、逻辑结构设计
用户基本信息表(用户ID、姓名、用户级别、密码、开户日期、开户时间、开户人、状态、是否结账)
学生基本信息表(学号、姓名、性别、系别、年级、班级、备注、注册日期、注册时间、用户ID)
卡基本信息表(卡号、类型、状态、是否结账、学号、用户ID、余额、注册日期、注册时间)
系统基础数据表(固定用户每小时费用、临时用户每小时费用、递增单位时间、最少上机时间、上机准备时间、最少消费金额、设定日期、设定时间、设定人)
上机记录表(卡号、学号、上机日期、上机时间、下机日期、下机时间、消费时间、消费金额、余额、状态、卡类型、是否在线、电脑信息、开户人ID)
充值表(学号、卡号、充值金额、充值日期、充值时间、充值操作员、是否结账)
退卡表(学号、卡号、退卡日期、退卡时间、退卡金额、退卡操作员、是否结账)
账单表(结账日期、上期卡余额、当日充值金额、当日消费金额、当日退卡金额、本期卡余额、用户ID)
操作员工作日志表(教师ID、工作教师级别、登录日期、登录时间、注销日期、注销时间、机器号、是否正在值班)
5、数据库表设计
用户表T_User:充值、退卡、注册时的操作者都必须已在用户表中注册,主要用于添加删除用户;登录验证、还有充值、退卡、注册业务时操作者的身份验证等业务。与充值、退卡、学生表相关联
学生表T_Student:主要用于学生注册、退卡、上机、充值等业务。与卡表相关联
卡表T_Card:所有与卡相关的业务在进行前,都必须先验证“卡号”是否已注册,主要用于上下机业务和一些验证操作等。与充值记录、上机记录、退卡记录、学生表相关联
系统基础数据表T_BasicData:主要用于下机结账时计算消费时间和消费金额的业务
上机记录表T_Line:主要用于上机业务,查询上机记录,与用户表、卡表相关联
充值记录表T_Recharge:主要用于充值业务,查询充值记录,与用户表、卡表相关联
退卡记录表T_CancelCard:主要用于退卡业务,查询退卡记录,与卡表相关联
账单表T_Bill:主要用于消费记录的查询,用于查看日结账单、周结账单业务
工作日志表T_Work:主要用于操作员工作记录查询业务
小结:数据库是程序设计的基础,一个良好的数据库设计是系统逻辑清晰、良好运行的保障。
现摘录部分数据库设计说明书内容如下:
1、数据库总表:
表名 | 名称 | 描述信息 | 状态 |
基本数据设定 | T_BasicData | 基本的消费使用信息 | 使用 |
退卡 | T_Cancelcard | 退卡信息 | 使用 |
账单表 | T_Bill | 记录所有账单的信息 | 使用 |
上机 | T_Line | 记录上机信息,包括上机信息和正在上机学生的信息 | 使用 |
充值 | T_Recharge | 记录充值信息 | 使用 |
学生信息 | T_Student | 学生信息 | 使用 |
用户信息 | T_User | 用户信息 | 使用 |
工作记录表 | T_Work | 记录工作员的工作记录 | 使用 |
卡表 | T_Card | 记录所有注册的卡的信息 | 使用 |
(1)数据库名
数据库名采用首字母大写,避免系统保留的表名。此次使用ChargeSystem
(2) 数据库表
使用T_表名,表名采用首字母大写。例如用户表:T_User
(3)表字段
第一个字母小写,后面的单词或拼音,采用第一个字母大写,命名规则只来自于业务,尽量表达出列的含义。命名一般为名词或形容词。
(4)主键
主键名 = PK + “_”+ 表名
(5)外键
外键名 = FK + “_” + 表名
(6)索引
索引名 = IDX + “_” + 表名 + 相关字段/索引含义。
3、结构设计
(1)ER图:
(2)表信息
学生表详细信息:
卡表详细信息:
用户表详细信息:
基本数据详细信息:
充值表详细信息:
退卡表详细信息:
账单表详细信息:
上机表详细信息:
工作表详细信息:
4、逻辑结构设计
用户基本信息表(用户ID、姓名、用户级别、密码、开户日期、开户时间、开户人、状态、是否结账)
学生基本信息表(学号、姓名、性别、系别、年级、班级、备注、注册日期、注册时间、用户ID)
卡基本信息表(卡号、类型、状态、是否结账、学号、用户ID、余额、注册日期、注册时间)
系统基础数据表(固定用户每小时费用、临时用户每小时费用、递增单位时间、最少上机时间、上机准备时间、最少消费金额、设定日期、设定时间、设定人)
上机记录表(卡号、学号、上机日期、上机时间、下机日期、下机时间、消费时间、消费金额、余额、状态、卡类型、是否在线、电脑信息、开户人ID)
充值表(学号、卡号、充值金额、充值日期、充值时间、充值操作员、是否结账)
退卡表(学号、卡号、退卡日期、退卡时间、退卡金额、退卡操作员、是否结账)
账单表(结账日期、上期卡余额、当日充值金额、当日消费金额、当日退卡金额、本期卡余额、用户ID)
操作员工作日志表(教师ID、工作教师级别、登录日期、登录时间、注销日期、注销时间、机器号、是否正在值班)
5、数据库表设计
用户表T_User:充值、退卡、注册时的操作者都必须已在用户表中注册,主要用于添加删除用户;登录验证、还有充值、退卡、注册业务时操作者的身份验证等业务。与充值、退卡、学生表相关联
表名:T_UseUserrInfo | |||||
字段名 | 字段说明 | 数据类型 | 允许空 | 是否主键 | |
id | 用户名 | int | N | Y | |
password | 密码 | varchar(20) | N | | |
level | 用户级别 | varchar(8) | N | | |
name | 真实姓名 | varchar(10) | N | | |
managerUser | 开户人 | int | N | | |
registerDate | 开户日期 | varchar(10) | N | | |
registerTime | 开户时间 | varchar(10) | N | | |
state | 状态 | varchar(6) | N | | |
isCheck | 是否结账 | varchar(6) | N | | |
表名:T_StuInfo | |||||
字段名 | 字段说明 | 数据类型 | 允许空 | 是否主键 | |
id | 学号 | int | N | Y | |
name | 姓名 | varchar(10) | N | | |
sex | 性别 | varchar(2) | N | | |
department | 系别 | varchar(20) | N | | |
grade | 年级 | varchar(20) | N | | |
class | 班级 | varchar(20) | N | | |
remark | 备注 | varchar(100) | Y | | |
registerDate | 注册日期 | varchar(10) | N | | |
registerTime | 注册日期 | varchar(10) | N | | |
userId | 开户人 | int | N | | |
表名:T_CardInfo | |||||
字段名 | 字段说明 | 数据类型 | 允许空 | 是否主键 | |
id | 卡号 | int | N | Y | |
type | 卡类型 | varchar(8) | N | | |
cash | 卡余额 | numeric (6,1) | N | | |
state | 卡状态 | varchar(6) | N | | |
isCheck | 是否结账 | varchar(6) | N | | |
studentId | 使用该卡的学号 | int | N | | |
userId | 卡注册操作员 | int | N | | |
registerDate | 卡注册日期 | varchar(10) | N | | |
registerTime | 卡注册时间 | varchar(10) | N | | |
表名:T_BasicDataInfo | |||||
字段名 | 字段说明 | 数据类型 | 允许空 | 是否主键 | |
rate | 固定用户单位时间费用 | numeric (6, 1) | N | | |
temporaryRate | 临时用户单位时间费用 | numeric(6,1) | N | | |
unitTime | 递增单位时间 | int | N | | |
limTime | 最低消费时间 | numeric (6, 1) | N | | |
prepareTime | 上机准备时间 | numeric (6, 1) | N | | |
limCash | 最低消费金额 | numeric (6, 1) | N | | |
managerUser | 修改教师 | int | N | | |
setDate | 修改日期 | varchar(10) | N | | |
setTime | 修改时间 | varchar(10) | N | | |
表名:T_OnlineRecord | |||||
字段名 | 字段说明 | 数据类型 | 允许空 | 是否主键 | |
cardId | 卡号 | int | N | | |
studentId | 学号 | int | N | | |
onDate | 上机日期 | varchar(10) | N | | |
onTime | 上机时间 | varchar(10) | N | | |
offDate | 下机日期 | varchar(10) | Y | | |
offTime | 下机时间 | varchar(10) | Y | | |
consumeTime | 消费时间 | numeric(6,1) | Y | | |
consume | 消费金额 | numeric(6,1) | Y | | |
Cash | 余额 | numeric(6,1) | Y | | |
state | 状态 | varchar(6) | N | | |
cardType | 卡类型 | varchar(8) | N | | |
isOn | 是否在线 | varchar(2) | N | | |
computer | 机器号 | varchar(30) | N | | |
userId | 开户人ID | int | N | | |
表名:T_RechargeRecord | |||||
字段名 | 字段说明 | 数据类型 | 允许空 | 是否主键 | |
studentId | 学号 | int | N | | |
cardId | 充值卡号 | int | N | | |
addCash | 充值金额 | Numeric(6,1) | N | | |
rechargeDate | 充值日期 | varchar(10) | N | | |
rechargeTime | 充值时间 | varchar(10) | N | | |
managerUser | 充值教师 | int | N | | |
isCheck | 是否结账 | varchar(6) | N | | |
表名:T_RebackRecord | |||||
字段名 | 字段说明 | 数据类型 | 允许空 | 是否主键 | |
studentId | 学号 | int | N | | |
cardId | 退卡卡号 | int | N | | |
cancelDate | 退卡日期 | varchar(10) | N | | |
cancelTime | 退卡时间 | varchar(10) | N | | |
cancelCash | 退卡金额 | numeric (6,1) | N | | |
managerUser | 退卡操作员 | int | N | | |
isCheck | 是否结账 | varchar(6) | N | | |
表名:T_CheckWeekDay | |||||
字段名 | 字段说明 | 数据类型 | 允许空 | 是否主键 | |
billDate | 结账日期 | varchar(10) | N | | |
priorCash | 上期余额 | numeric(6,1) | N | | |
rechargeCash | 当天充值金额 | numeric(6,1) | N | | |
consumeCash | 当天消费金额 | numeric(6,1) | N | | |
cancelCash | 当天退卡金额 | numeric(6,1) | N | | |
cash | 本期卡余额 | numeric(6,1) | N | | |
userId | 用户ID | int | N | | |
表名:T_DutyWorklog | |||||
字段名 | 字段说明 | 数据类型 | 允许空 | 是否主键 | |
userId | 工作者用户名 | int | N | Y | |
userLevel | 工作者级别 | varchar(8) | N | | |
loginDate | 登录日期 | varchar(10) | N | | |
loginTime | 登陆时间 | varchar(10) | N | | |
logoutDate | 注销日期 | varchar(10) | Y | | |
logoutTime | 注销时间 | varchar(10) | Y | | |
computer | 机器号 | varchar(30) | N | | |
isOn | 是否值班 | varchar(2) | N | | |
相关文章推荐
- 如何将excel表格文件导成SQLite数据库文件(.xls-->.db)
- Oracle协议适配器错误解决办法
- MMM 之 MySQL
- mongodb--c#驱动数据插入demo
- 修改wamp mysql密码
- 商城数据库类
- 深入理解Oracle 的并行执行
- 17 Automatic SQL Tuning
- mysql不支持full join的另一种解决办法 和根据多个表中的相同分组来连接查询
- 无法启动mysql服务,错误1067
- sql server 用户and角色笔记
- 点击scrollview里面的按钮更换tableview的内容(tableview内容来自sqlite3) iOS
- SQL Server 中关于EXCEPT和INTERSECT的用法
- Oracle并行详解
- 95.Oracle数据库SQL开发之 修改表内存——查询闪回
- 94.Oracle数据库SQL开发之 修改表内存——数据库事务的SERIALIZABLE事务
- 93.Oracle数据库SQL开发之 修改表内存——数据库事务的事务隔离级别
- 92.Oracle数据库SQL开发之 修改表内存——数据库事务的事务锁
- 91.Oracle数据库SQL开发之 修改表内存——数据库事务的并发事务
- 90.Oracle数据库SQL开发之 修改表内存——数据库事务的ACID特性