终于,走到了机房收费系统重构的阶段……
之前的一遍机房收费系统的数据库是用的给的那个,只是把每个表都看了一下,当时也没有学习数据库原理那本书,然后就没有深究……
现在不一样了,我们进行机房收费系统重构,况且学习了数据库原理这本书,对数据库有了更深的认识,
机房收费系统重构——数据库设计
。所以对于数据库要好好的设计,按照步骤走……数据库技术是信息资源管理最有效地手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
数据库的设计的步骤和各阶段的主要内容如下:
在逻辑设计阶段要注意
将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一般遵循如下原则:
(1)一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。
(2)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。 而关系的码为各实体码的组合。<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgICCjqDOjqdK7uPYxOm7Bqs+1v8nS1Nequ7vOqtK7uPa2wMGitcS52M+1xKPKvaOs0rK/ydLU0+tutsu21NOmtcS52M+1xKPKvbrPsqKho8jnufvXqru7zqrSu7j2tsDBorXEudjPtcSjyr2jrNTy0+u4w8Gqz7XP4MGstcS498q1zOW1xMLr0tS8sMGqz7WxvsnttcTK9NDUvvnXqru7zqq52M+1tcTK9NDUo6y2+LnYz7W1xMLrzqputsvKtczltcTC66GjPC9wPgo8cD4gICAgIKOoNKOp0ru49jE6McGqz7W/ydLU16q7u86q0ru49rbAwaK1xLnYz7XEo8q9o6zSsr/J0tTT68jO0uLSu7bLttTTprXEudjPtcSjyr26z7KioaM8L3A+CjxwPiAgICAgo6g1o6nI/bj2u/LI/bj20tTJz8q1zOW85LXE0ru49rbg1KrBqs+116q7u86q0ru49rnYz7XEo8q9oaPT67jDtuDUqsGqz7XP4MGstcS498q1zOW1xMLr0tS8sMGqz7WxvsnttcTK9NDUvvnXqru7zqq52M+1tcTK9NDUoaO2+LnYz7W1xMLrzqq498q1zOXC67XE1+m6z6GjIAo8L3A+CjxwPiAgICAgo6g2o6nNrNK7yrXM5byvtcTKtczlvOS1xMGqz7WjrLy019TBqs+1o6zSsr/JsLTJz8r2MToxoaIxOm66zW06bsj91tbH6b/2t9ax8LSmwO2hozwvcD4KPHA+ICAgICCjqDejqb7f09DP4M2swuu1xLnYz7XEo8q9v8m6z7KioaM8L3A+CjxwPiAgICAgo6g4o6m7udPQvs3Kx87Sw8ezo8u1tcTI/be2yr2jqMi3tqjK/b7d0sDAtaGjz/uz/cjf0+C1xMGqz7WjqaO6PC9wPgo8cD4gICAgICAgICAgICAgILXa0ru3tsq9o6gxTkajqaO6udjPtcSjyr1S1tDDv9K7uPbUrdfTtrzKx7K7v8m31rjutcTUrdfTJiMyMDU0MDuhozwvcD4KPHA+ICAgICAgICAgICAgICC12rb+t7bKvaOoMk5Go6mjurnYz7XEo8q9UsrHMU5Go6zDv7j2t8fW98r00NTN6sir0sDAtdPauvLRobz8o6i2vL/J0tTTw8C01/bW97z8tcTX1rbOo6mjrL7NysfC+tfjtdq2/re2yr2hozwvcD4KPHA+ICAgICAgICAgICAgICC12sj9t7bKvaOoM05Go6k6udjPtcSjyr1SyscxTkajrMO/uPa3x9b3yvTQ1La8sru0q7Xd0sDAtdPaUrXEuvLRobz8oaM8L3A+CjxwPiA8L3A+CjxwPiAgICAgICAgICAgICAgytfPyM7SuPm+3dStwLS1xMr9vt2/4r340NDBy9TZtM7J6LzGo6y9q9StwLTTt9bXtcSx7dPQtcS31r+qo6zT0LXEvPXJ2barzvehraGtu63By9K7uPZFUs28o7o8L3A+CjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20150525/2015052509421086.jpg" alt="\">
根据ER图设计出了数据库中每个表:
用户信息表(User_Info):
UsrID
用户名(主键)
Char(10)
Password
密码
Char(10)
Level
级别
Char(10)
UserName
真实姓名
Char(10)
Holder
开户人
Char(10)
学生信息表(Student_Info):
StudentID
学号(主键)
Char(10)
StudentName
姓名
Char(10)
Sex
性别
Char(2)
Department
系别
Char(10)
grade
年级
Char(10)
Class
班级
Char(10)
卡信息表(card_Info):
CardID
卡号(主键)
Char(10)
studentID
学号
Char(10)
Status
使用状态
Bit
Account
余额
Decimal(10,4)
Type
卡类型
Char(10)
registDate
注册日期
Date
registTime
注册时间
Time
checkstatus
结账状态
Bit
UserID
用户名
Char(10)
由于学生和卡是两个不同的实体,所以将它们有关的信息分开记录,防止数据冗余,防止表的臃肿。
充值记录表(Recharge):
cardID
卡号
Char(10)
rechargeMoney
充值金额
Decimal(10,4)
RechargeDate
充值日期
Date
RechargeTime
充值时间
Time
userID
用户名
Char(10)
checkstatus
结账状态
Bit
退卡记录表(Cancelcard):
cardID
卡号
Char(10)
returnMoney
退还金额
Decimal(10,4)
CancelcardDate
退卡日期
Date
CancelcardTime
退卡时间
Time
UserID
用户名
Char(10)
checkstatus
结账状态
Bit
上下机记录表(OnOffLineRecord):
cardID
卡号
Char(10)
OnDate
上机日期
Date
Ontime
上机时间
Time
OffDate
下机日期
Date
Offtime
下机时间
Time
OffWay
下机方式
Char(10)
ConsumeMoney
消费金额
Decimal(10,4)
ConsumeTime
消费时间
Time
UserID
用户名
Char(10)
checkstatus
结账状态
Bit
Computer
机器名
Char(10)
基本数据表(BasicData):
Leasttime
至少上机时间
Time
Unittime
单位递增时间
Time
Rate
固定每小时费用
Decimal(10,4)
Tmprate
临时每小时费用
Decimal(10,4)
Limitcash
最少金额
Decimal(10,4)
date
日期
Date
Time
时间
Time
UserID
用户名
Char(10)
账单(check):
LastcardMoney
上期充值卡金额
Decimal(10,4)
CurrentrechargeMoney
本期充值卡金额
Decimal(10,4)
CurrentcancelcardMoney
本期退卡金额
Decimal(10,4)
CurrentconsumeMoney
本期消费金额
Decimal(10,4)
CurrentcardMoney
本期充值卡金额
Decimal(10,4)
Date
日期
Date
Time
时间
Time
UserId
用户名
Char(10)
工作记录表(workLog):
UserID
用户名
Char(10)
Ondate
登录日期
Date
Ontime
登录时间
Time
Offdate
注销日期
Date
Offtime
注销时间
Time
Status
状态
Bit
Computer
机器名
Char(10)
总结:数据库设计是很重要的一件事,但是我们不可能一次就将自己的数据库设计的完美,每次都严格按照规则走,只有实践的多了才能慢慢的设计出好的数据库,