标签:
之前。当学习编写计算机房收费系统文件。我写 机房收费系统数据库概念设计模型——ER图 这篇文章,如今到了机房收费系统个人版重构阶段,须要再次进行数据库的设计。
能够说。之前的数据库的概念设计给我如今的设计奠定了一定的基础,可是仍然发现自己的设计中有很多不合理而且须要改进的地方。
在这次的数据库设计其中,学习了一些数据库的命名规范,重温了经典的三范式(属性原子化。避免局部依赖。避免传递依赖)。
可是发现,在需求面前,一些分属两张表的字段。为了方便,还是得放到一张表中,不得不破坏三范式。
如今将自己设计的数据库分享例如以下:(由于自己还没真正进行机房的重构。不知道在实际应用中。这些表是否合理,还请大家提宝贵意见。)
数据库名ComputerRoomChargeSystem
学生信息表(T_StudentInfo)
名称 |
意义 |
类型 |
studentID |
学号(主键) |
Char(10) |
studentName |
姓名 |
Char(10) |
sex |
性别 |
Char(2) |
department |
系别 |
Char(20) |
grade |
年级 |
Char(10) |
class |
班级 |
Char(10) |
用户信息表(T_UserInfo)
名称 |
意义 |
类型 |
UserID |
username(主键) |
Char(10) |
realName |
真实姓名 |
Char(10) |
userLevel |
用户级别 |
Char(8) |
userPassword |
用户password |
Char(10) |
accountHolder |
开户人 |
Char(10) |
卡信息(T_CardInfo)
名称 |
意义 |
类型 |
cardID |
卡号(主键) |
Char(10) |
studentID |
学号(外键) |
Char(10) |
account |
剩余金额 |
Decimal(10,4) |
usageState |
使用状态 |
Char(6) |
cardType |
卡类型 |
Char(8) |
registrationDate |
注冊日期 |
Date |
registrationTime |
注冊时间 |
Time(0) |
UserID |
username |
Char(10) |
checkStatus |
结账状态 |
Bit(1) |
账单(T_AccountSheet)
名称 |
意义 |
类型 |
checkID |
结账编号(主键) |
Decimal(18,0) |
lastCardMoney |
上期充值卡金额 |
Decimal(18,4) |
currentChargeMoney |
本期充值金额 |
Decimal(18,4) |
currentReturnMoney |
本期退卡金额 |
Decimal(18,4) |
currentConsumeMoney |
本期消费金额 |
Decimal(18,4) |
currentCardMoney |
本期充值卡金额 |
Decimal(18,4) |
checkDate |
结账日期 |
Date |
checkTime |
结账时间 |
Time(0) |
userID |
username |
Char(10) |
账单,我为其设置了一个结账编号,作为主键,我想在真正建表时,能够依照结账编号从大到小排列,由于在打印账单或是日结账, 周结账都是结近期的账单吧。
本期充值卡金额=上期充值卡金额+本期充值金额-本期消费金额-本期退卡金额
充值记录表(T_ChargeRecord)
名称 |
意义 |
类型 |
cardID |
卡号(外键) |
Char(10) |
chargeDate |
充值日期 |
Date |
chargeTime |
充值时间 |
Time(0) |
chargeMoney |
充值金额 |
Decimal(10,4) |
checkStatus |
结账状态 |
Bit(1) |
userID |
username |
Char(10) |
退卡记录表(T_ReturnRecord)
名称 |
意义 |
类型 |
cardID |
卡号(外键) |
Char(10) |
returnDate |
退卡日期 |
Date |
returnTime |
退卡时间 |
Time(0) |
account |
退卡金额 |
Decimal(10,4) |
checkStatus |
结账状态 |
Bit(1) |
userID |
username |
Char(10) |
上下机记录表(T_OnOffLineRecord)
名称 |
意义 |
类型 |
cardID |
卡号(外键) |
Char(10) |
onDate |
上机日期 |
Date |
onTime |
上机时间 |
Time(0) |
offDate |
下机日期 |
Date |
offTime |
下机时间 |
Time(0) |
offWay |
下机方式 |
Char(8) |
consumeMoney |
消费金额 |
Decimal(10,4) |
userID |
username |
Char(10) |
checkStatus |
结账状态 |
Char(6) |
onFlag |
正在上机标志 |
Bit(1) |
在这个表中,我添加了结账状态这个字段,由于想到结账时,除了会结购卡数,充值金额,退卡金额。还要结消费金额。
基本数据表(T_BasicData)
名称 |
意义 |
类型 |
fixedPerCharge |
固定每小时费用 |
Decimal(10,4) |
temporaryPerCharge |
暂时每小时费用 |
Decimal(10,4) |
increasingUnitTime |
递增单位时间 |
SmallInt |
leastTime |
至少上机时间 |
SmallInt |
prepareTime |
准备时间 |
SmallInt |
minMoney |
最少金额 |
Decimal(10,4) |
操作员工作记录(T_WorkLog)
名称 |
意义 |
类型 |
UserID |
username(外键) |
Char(10) |
LoginDate |
登录日期 |
Date |
LoginTime |
登录时间 |
Time(0) |
ExitDate |
注销日期 |
Date |
ExitTime |
注销时间 |
Time(0) |
onFlag |
正在上机标志 |
Bit(1) |
computerID |
机器名 |
Varchar(10) |
版权声明:本文博主原创文章,博客,未经同意不得转载。
标签:
原文地址:http://www.cnblogs.com/mengfanrong/p/4822042.html