您的位置:首页 > 数据库

客房收费系统数据库设计

2015-09-19 19:20 211 查看
之前。当学习编写计算机房收费系统文件。我写
机房收费系统数据库概念设计模型——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)

小结:自己感觉数据库设计是件非常有意思的事情,在画机房重构版的类图时,感觉还得先从一个数据库设计开始,因此数据库的设计还是很重要的啊!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: