个人重构之数据库设计

时间:2022-09-14 17:41:19

前言

本身数据库对于我来说就有一种抵触的心理(自考过了,哈哈),所以重构的时候,很害怕设计数据库,但是该来的总得来,早晚到要去解决不如早点解决,其实数据库也没有我们想象的那么难,只有你的系统逻辑思维理顺就没有问题,机房收费系统是我们第二次接触所以对于系统逻辑我们都有自己不同的见解,下面小编简述自己的见解吧
如何异同请指出


内容

首先对于数据库的设计我们应该首先了解3个方面,一3个范式,二什么是ER图, 三字段的类型


三个范式

3个范式主要的作用就是让数据库减少冗余,对数据冗余,删除冗余,插入冗余,更新冗余起到很好的作用


第一范式:第一范式是最简单的范式,关系模式的所有属性都是不可分的基本数据项,表明一个属性是不可再分的,例如男和女则就不可以再分


第二范式:它是在第一范式的基础之上展开的,定义:每一个非主属性都完全依赖于R的码,意思是:不是主键的属性必须依赖于主键,也就是说一个主键和一个非主键结合可以推出表中另一个非主属性,这就是第二范式
不符合第二范式:两个非主属性结合可以推出另一个非主属性则表示不符合非主属性完全依赖于主属性


第三范式:任何字段不能由其他字段派生,意思:通过该表的一个字段可以知道该表的另一个字段,避免了冗余
例子:课程id ,教师id,教师名称。课程id——>教师id,教师id——>教师名称。则教师id—–>教师名称
所以出现了传递依赖,冗余,解决方法:分为两个表,第一个表为课程id ,教师id 。第二个表为教师id,教师名称


ER图

ER图分为3个部分,属性,实体,联系,,用来描述现实世界的概念,通过ER图我们可以很直观的看到我们的数据库设计,给数据库设计人员和程序设计人员看
我这次设计的数据库有9张表
上下机表Online_info
基本数据表T_BasicData
卡表T_CardInfo
充值表T_Chargecard
退卡表T_returncard
学生表T_StudentInfo
工作记录表T_WorkLogInfo
账单表T_money


于之间收费系统表合并:
上下机表进行合并,学生表于卡表分开,日结账单于周结账单合并,可能有的地方还存在冗余,慢慢改进吧
ER图:还有待完善
个人重构之数据库设计

类型

字段的类型,在我们写程序的时候如果内存溢出则会报错,所以设计数据库的时候我们应该考虑字段容量应该有多大,分析给大家一张图,所以还没有特别的理解,但以后会理解的!
个人重构之数据库设计