数据库三范式

数据库的设计要遵从三范式的原则。

第一范式

1、每一列属性都是不可再分的属性值,确保每一列的原子性。

2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。

个人理解就是原子性。如果说每一列的属性都是一块砖的话,那么不能在一列里面放两块砖,尽量的把两个半截砖头拼成一块放在一列,拼不成的就不勉强了。

第二范式

1、每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。

个人理解就是专业性。一块砖头只做一件事,既要做承重又要做外墙装饰,那就必须要更多的砖头。

第三范式

3、 数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。

举个简单的列子,一个表中有员工姓名、公司名称和公司地址。这就是一个典型的传递关系:员工姓名>公司名称>公司地址。这样的表不符合第三范式,需要改成两张表,第一张表(员工姓名+公司名称),第二张表(公司名称+公司地址)。

其他问题

三大范式只是一般设计数据库的基本理念,并不是数据库必须这么设计。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求>性能>表结构。根据要建的房子选择砖头,而不是根据砖头建房子。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章