微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VB.NET版机房收费系统之数据库设计



由于第一次机房收费自己偷懒没有亲自设计数据库,所以这次重构一定要亲自动手设计一下,否则感觉错过的太多。况且设计数据库乃是很重要的一项技术,不能轻视,更不能无视。


设计数据库之前,先回顾一下三范式:

第一种说法:

1NF:符合1NF的关系中的每个属性都不可再分。

2NF:在1NF的基础之上,消除了非主属性对于码的部分函数依赖。(如果依赖于主键,则需要依赖于所有主键,不能存在依赖部分主键的情况)

3NF:在2NF的基础之上,消除了非主属性对于码的传递函数依赖。

第二种说法:

1NF: 字段是最小的的单元不可再分
2NF:满足1NF,表中的字段必须完全依赖于全部主键而非部分主键 (一般我们都会做到)
3NF:满足2NF,非主键外的所有字段必须互不依赖


通过对三范式的学习,我们查看之前的机房数据库表,可以发现很多错误和弊端。比如说student_Info表严重冗余,可以拆分为两张表student_Info和Card_Info。(下图为原机房student_Info表)



通过自考对数据库原理的学习,自己动手画了一张机房数据库的E-R模型图。


机房E-R图(由于图幅有限,图中未画出充值和退卡的属性




机房数据库表:



关系模式:



数据字典:






字符型数据对比:


小结:

这次设计的9张表,比起之前的11张表少了2张,试着用三范式去修改了很多地方,虽然还有不符合第二、三范式的地方,但是和上次相比已经好多了。

我知道这仅仅是第一遍设计的结果,在代码实现阶段肯定还要回来修改数据库的。不过只有经历这些反复的修改,才能真正理解和学会如何设计数据库。加油!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐