客房收费系统数据库设计
2015-09-19 19:20
211 查看
之前。当学习编写计算机房收费系统文件。我写
机房收费系统数据库概念设计模型——ER图 这篇文章,如今到了机房收费系统个人版重构阶段,须要再次进行数据库的设计。
能够说。之前的数据库的概念设计给我如今的设计奠定了一定的基础,可是仍然发现自己的设计中有很多不合理而且须要改进的地方。
在这次的数据库设计其中,学习了一些数据库的命名规范,重温了经典的三范式(属性原子化。避免局部依赖。避免传递依赖)。
可是发现,在需求面前,一些分属两张表的字段。为了方便,还是得放到一张表中,不得不破坏三范式。
如今将自己设计的数据库分享例如以下:(由于自己还没真正进行机房的重构。不知道在实际应用中。这些表是否合理,还请大家提宝贵意见。
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
)
数据库名ComputerRoomChargeSystem
学生信息表(T_StudentInfo)
这里。我将学生的信息和卡的信息分成两张表,首先,考虑到它们本身就属于不同的实体,其次,想到假设卡不用 了,就得把卡的信息删除。那么学生信息也得跟着删除(只是,后来想到,卡的信息能够不用删除,可通过标记其状态为“未使用”来区分)。最后,感觉把这么多字段放在一个表中,它看起来实在是太“臃肿”了。
用户信息表(T_UserInfo)
卡信息(T_CardInfo)
这里,使用状态用来标记该卡是使用。还是未使用(已退卡)。卡类型来标记是固定用户还是暂时用户。
账单(T_AccountSheet)
账单,我为其设置了一个结账编号,作为主键,我想在真正建表时,能够依照结账编号从大到小排列,由于在打印账单或是日结账, 周结账都是结近期的账单吧。
本期充值卡金额=上期充值卡金额+本期充值金额-本期消费金额-本期退卡金额
充值记录表(T_ChargeRecord)
退卡记录表(T_ReturnRecord)
上下机记录表(T_OnOffLineRecord)
在这个表中,我添加了结账状态这个字段,由于想到结账时,除了会结购卡数,充值金额,退卡金额。还要结消费金额。
基本数据表(T_BasicData)
操作员工作记录(T_WorkLog)
小结:自己感觉数据库设计是件非常有意思的事情,在画机房重构版的类图时,感觉还得先从一个数据库设计开始,因此数据库的设计还是很重要的啊!
机房收费系统数据库概念设计模型——ER图 这篇文章,如今到了机房收费系统个人版重构阶段,须要再次进行数据库的设计。
能够说。之前的数据库的概念设计给我如今的设计奠定了一定的基础,可是仍然发现自己的设计中有很多不合理而且须要改进的地方。
在这次的数据库设计其中,学习了一些数据库的命名规范,重温了经典的三范式(属性原子化。避免局部依赖。避免传递依赖)。
可是发现,在需求面前,一些分属两张表的字段。为了方便,还是得放到一张表中,不得不破坏三范式。
如今将自己设计的数据库分享例如以下:(由于自己还没真正进行机房的重构。不知道在实际应用中。这些表是否合理,还请大家提宝贵意见。
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
)
数据库名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) |
名称 | 意义 | 类型 |
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) |
名称 | 意义 | 类型 |
cardID | 卡号(外键) | Char(10) |
returnDate | 退卡日期 | Date |
returnTime | 退卡时间 | Time(0) |
account | 退卡金额 | Decimal(10,4) |
checkStatus | 结账状态 | Bit(1) |
userID | username | Char(10) |
名称 | 意义 | 类型 |
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) |
名称 | 意义 | 类型 |
UserID | username(外键) | Char(10) |
LoginDate | 登录日期 | Date |
LoginTime | 登录时间 | Time(0) |
ExitDate | 注销日期 | Date |
ExitTime | 注销时间 | Time(0) |
onFlag | 正在上机标志 | Bit(1) |
computerID | 机器名 | Varchar(10) |
相关文章推荐
- oci.dll PLSQL连接oracel
- springMvc redis 配置开发案例
- redis 集群性能测试以及与单机性能对比
- Oracle压缩总结2— 估计表压缩效应
- MySql简单sql使用
- 一键安装mysql5.6
- mysql 读取硬盘数据
- oracle中execute immediate的使用(select/insert/update/delete)(转)
- sql查询第二大的记录(转)
- oracle安装分析
- Atlas+keepalived实现mysql读写分离
- MySQL中文编码GBK,utf-8
- MySQL性别约束
- Redis配置文件解析
- expdp 备份数据库-附带报错信息
- LBS JAVA Spring mongoDB
- Odoo(OpenERP)应用实践: 使用db-filter参数实现通过域名指定访问哪个数据库
- 在ORACLE中,单引号有两个作用
- sql语句分析
- 订单系统开发(仿淘宝和美团网) 之 项目总结(降低数据库并发量)