VB.NET版机房收费系统之数据库设计
由于第一次机房收费自己偷懒没有亲自设计数据库,所以这次重构一定要亲自动手设计一下,否则感觉错过的太多。况且设计数据库乃是很重要的一项技术,不能轻视,更不能无视。
设计数据库之前,先回顾一下三范式: 第一种说法: 1NF:符合1NF的关系中的每个属性都不可再分。 2NF:在1NF的基础之上,消除了非主属性对于码的部分函数依赖。(如果依赖于主键,则需要依赖于所有主键,不能存在依赖部分主键的情况) 3NF:在2NF的基础之上,消除了非主属性对于码的传递函数依赖。 第二种说法: 1NF: 字段是最小的的单元不可再分
通过对三范式的学习,我们查看之前的机房数据库表,可以发现很多错误和弊端。比如说student_Info表严重冗余,可以拆分为两张表student_Info和Card_Info。(下图为原机房student_Info表)
通过自考对数据库原理的学习,自己动手画了一张机房数据库的E-R模型图。
机房E-R图(由于图幅有限,图中未画出充值和退卡的属性)
机房数据库表:
关系模式:
数据字典:
字符型数据对比:
小结: 这次设计的9张表,比起之前的11张表少了2张,试着用三范式去修改了很多地方,虽然还有不符合第二、三范式的地方,但是和上次相比已经好多了。 我知道这仅仅是第一遍设计的结果,在代码实现阶段肯定还要回来修改数据库的。不过只有经历这些反复的修改,才能真正理解和学会如何设计数据库。加油! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |