關于一對多,舉個例子,一個使用者組可以包含多個使用者,每個使用者隻能屬于一個使用者組。一個人可以有多輛車,每輛車隻能屬于一個人。這些都是一對多的關系。
打個比方,一個人可以有多輛車,每輛車隻能屬于一個人。
兩張表,一張表person,一張表car。關鍵是他們兩個之間在資料庫表中怎麼設計關聯呢?
person id<int> name<vechar>;
car id<int> color<vachar>;
錯誤做法:
1.在一方加備援
person id<int> name<vechar> car_id<int>;
為什麼會産生備援?如果有一個人id=1,name=zhangsan,他有兩輛車,一輛顔色為紅色,一輛顔色為黃色,這樣就要存兩個字段
id=1,name=zhangsan,car_id=1
id=1,name=zhangsan,car_id=2
解決辦法:person取消car_id字段,在car一方加一個person_id(因為一輛車隻能屬于一個人).
即是“在多方加外鍵”的方式。
三大範式:
1.要有主鍵,列不可分
2.聯合主鍵的情況不能出現部分依賴
3.不能存在傳遞依賴
原則:不要讓資料産生備援!同樣的資料存一份就可以。
但老鳥的原則是:具體問題,具體分析,實事求是。
轉載請注明出處:http://blog.csdn.net/acmman