第一范式:
原子性:对于表中的每个属性都是最小的单位,不能划分。比如,有一个地址字段,湖南省长沙市中南大学铁道校区,这个就不符合原子性,它可以划分为省、市、学校、学院。但是这个范式并不是一成不变的,得看你的实际需要,在设计时有时
并不用细分到很小。
第二范式:
完全依赖性:每个非主属性完全依赖与主键,也就是,如果主键不存在,就没有其他的属性,比如,学生信息表有学号,姓名,性别,班级等属性,那么能作为主键的只能是能够唯一标识这个学生的属性,符合条件的只有学号,而其他的属性则依
赖于学号这个主键属性。
第三范式:
非主键属性互不依赖性。
数据库的范式不多,但是真正的掌握还是有难度的,根据这些范式,我自己设计了一个简单的客户产品投诉数据库,包含了三张表,投诉列表,产品信息表,客户信
息表,如图:
表一 投诉列表
表二 产品信息
表三 客户信息表
在这个数据库中,投诉列表中的客户ID和产品编号都设置为外键,便于查询,数据库的设计还有很多规则,比如空间冗余啊什么的,掌握它并不是一朝一夕的事,就像我现在设计的这个简单数据库,也是有挺多的毛病,还得多学些相关知识才能将它逐步优化。
在编写这东东的时候,总是报不同的错,由于刚开接触,出现的错误还不太懂解决,只能在网上找,但是我出现的错误有些在网上也没有,特别是在那黑不溜秋的cmd命令行里敲,一不小心,少了个字母,又报错,真是太纠结了,最纠结的一个错是
纠结了N久,后来在网上查看是才知道VARCHAR是可变字符数据类型,声明时必须指定它的长度,恍然大悟,终于解决了这个错误。
虽然花了很多时间在体验MySQL的命令上,不过还有收获的,至少懂得了一些基本的操作了