数据库设计的三范式


 第一范式:
原子性:对于表中的每个属性都是最小的单位,不能划分。比如,有一个地址字段,湖南省长沙市中南大学铁道校区,这个就不符合原子性,它可以划分为省、市、学校、学院。但是这个范式并不是一成不变的,得看你的实际需要,在设计时有时

并不用细分到很小。
第二范式:
完全依赖性:每个非主属性完全依赖与主键,也就是,如果主键不存在,就没有其他的属性,比如,学生信息表有学号,姓名,性别,班级等属性,那么能作为主键的只能是能够唯一标识这个学生的属性,符合条件的只有学号,而其他的属性则依

赖于学号这个主键属性。
第三范式:
非主键属性互不依赖性。
      数据库的范式不多,但是真正的掌握还是有难度的,根据这些范式,我自己设计了一个简单的客户产品投诉数据库,包含了三张表,投诉列表,产品信息表,客户信

息表,如图:

                                                                      表一  投诉列表

 



 

                                                                表二 产品信息



                                                                表三 客户信息表

       在这个数据库中,投诉列表中的客户ID和产品编号都设置为外键,便于查询,数据库的设计还有很多规则,比如空间冗余啊什么的,掌握它并不是一朝一夕的事,就像我现在设计的这个简单数据库,也是有挺多的毛病,还得多学些相关知识才能将它逐步优化。

       在编写这东东的时候,总是报不同的错,由于刚开接触,出现的错误还不太懂解决,只能在网上找,但是我出现的错误有些在网上也没有,特别是在那黑不溜秋的cmd命令行里敲,一不小心,少了个字母,又报错,真是太纠结了,最纠结的一个错是

纠结了N久,后来在网上查看是才知道VARCHAR是可变字符数据类型,声明时必须指定它的长度,恍然大悟,终于解决了这个错误。

虽然花了很多时间在体验MySQL的命令上,不过还有收获的,至少懂得了一些基本的操作了
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值