前言:机房重构,需要按照三层架构的理念来设计程序,需要重新设计数据库,而数据库设计说明书则是数据库设计的依据。
现摘录部分数据库设计说明书内容如下:
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图:
学生表详细信息:
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_Student:主要用于学生注册、退卡、上机、充值等业务。与卡表相关联
表名: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_Card:所有与卡相关的业务在进行前,都必须先验证“卡号”是否已注册,主要用于上下机业务和一些验证操作等。与充值记录、上机记录、退卡记录、学生表相关联
表名: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_BasicData:主要用于下机结账时计算消费时间和消费金额的业务
表名: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_Line:主要用于上机业务,查询上机记录,与用户表、卡表相关联
表名: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_Recharge:主要用于充值业务,查询充值记录,与用户表、卡表相关联
表名: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_CancelCard:主要用于退卡业务,查询退卡记录,与卡表相关联
表名: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_Bill:主要用于消费记录的查询,用于查看日结账单、周结账单业务
表名: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_Work:主要用于操作员工作记录查询业务
表名: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 |
|
|
小结:数据库是程序设计的基础,一个良好的数据库设计是系统逻辑清晰、良好运行的保障。