机房重构之数据库设计
与以往不同,机房重构需要我们自己设计数据库,下面简单介绍一下我的理解。
1、需要建哪些表?
Tabel |
introduction |
Userinfo |
用户登录 |
WorkLoginfo |
用户工作记录 |
Studentinfo |
注册、充值、退卡 |
Rechargeinfo |
充值 |
Cancelcardinfo |
退卡 |
Onlineinfo |
学生上机 |
Lineinfo |
学生上机记录 |
OnWorkinfo |
多用户登录检测 |
BasicDatainfo |
基本信息设定 |
Checkinfo |
结账 |
2、建立完了所需要的表之后,需要添加所需要的字段。
结合之前自考学过的数据库系统原理这本书中关于这块的内容:关系型数据库设计遵循的三范式,先简单回顾一下:
1NF:删除了表中的重复数据组,为每组相关数据创建一个表,用一个主键标识每个表,该主键唯一的标识了每个数据行。
2NF:应用于多个记录的值的集合创建表,并用外键关联这些表。
3NF:删除不依赖于主键的列。
注:不同表中的相同字段通过外键约束可以实现同步更新。
举两个例子:
Userinfo表
表名 |
字段 |
Userinfo |
UserID(主键) |
PassWord |
|
UserName |
|
Level |
WorkLoginfo表
表名 |
字段 |
WorkLoginfo |
UserID(外键) |
LoginTime |
|
LogoutTime |
|
States |
|
Computer |
3、填充好所需要的字段之后就是对字段属性的约束了。
还是以Userinfo表为例吧
字段名称 |
数据类型 |
UserID |
Int |
PassWord |
Char(10) |
UserName |
Char(10) |
Level |
Char(8) |
这样依次将每个表弄好就OK啦,既然是重构就要比第一次弄的要好,所以需要我们更规范化。