數據庫設計范式(范例)
好的數據庫設計,事倍功半,不會有歧義
第一范式:列保證原子性(列不可再分解)
聯系方式:電話,微信,QQ,郵箱
這些都不可分解
第二范式:要有主鍵,其他字段必須依賴于某個列(主鍵列)
?? ?通過主鍵可以精確的定位到某行數據
第三范式:確保每列都和主鍵列直接相關
?? ?不同的信息放在不同的表中
?? ?如果兩張表有關系的話,只需要在一張表放置另一個表的主鍵進行關聯,關聯表中其他非主鍵信息不需要
major稱為外鍵,外鍵必須是與另一個表的主鍵關聯,且數據類型一致
通過學生表中的major列,把學生與專業關聯起來,在學生表中只需要添加專業編號即可
其他信息不需要添加到學生表中
表與表關系:多對一關系,也可稱為一對多
添加外鍵約束,如果沒有添加約束,數據與數據之間,沒有任何的約束,可以隨意操作
為外鍵添加約束后,操作時就不能隨便操作,要保證數據的完整性
代碼如下
ALTER TABLE student ADD CONSTRAINT fk_student_major_on_majorid FOREIGN KEY(majorid) REFERENCES major(id)