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

前端之家收集整理的这篇文章主要介绍了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张,试着用三范式去修改了很多地方,虽然还有不符合第二、三范式的地方,但是和上次相比已经好多了。

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

猜你在找的VB相关文章