2016-01-14 24 views
1

我UNF是是否有必要把非重複表的主鍵,同時從UNF數據庫標準化爲1NF

database(
manager_id, 
manager_name, 
{supplier_id, 
supplier_name, 
{order_id, 
order_quantity}} 
{purchase_id, 
purchase_date} 

這裏manager_namesupplier_idorder_idpurchase_id是主鍵。 在標準化過程中將會有一個名爲purchase的表。是否有必要將manager_name作爲外鍵?

如何規範化這些數據庫?

這是我大學數據庫項目的一部分。標準化非常混亂。

回答

1

首先考慮通過自然結合在一起的事物來分裂事物。在這種情況下,您擁有經理信息,供應商信息,訂單信息和採購信息。我個人會想知道訂單和購買之間的區別,因爲我不清楚這一點。

因此,對於那些單獨的信​​息,您至少有四張表(儘管根據您可能需要的其他字段,供應商和經理可能會在同一個表中添加一個字段,例如person_type以區分它們,在此你需要一個查找表來獲取有效的人員類型值)。然後你需要看看這些事情是如何相互關聯的。他們是一對一的關係,還是一對多或多對多的關係?在一對一的關係中,您需要FK還有一個唯一的索引約束來保持唯一性。在多數人中,您需要一個包含兩個ID的額外聯結表。

否則,在最簡單的情況下,子購買表將具有FK給經理,供應商。和訂單表。

經理姓名在任何情況下都不應是主要關鍵字。很多人都有相同的名字。使用Manager ID作爲關鍵字,因爲它在名稱不是唯一的情況下是唯一的。一般來說,我更喜歡將名字分爲First,Middle和Last,這樣您就可以輕鬆地對姓氏進行排序。但是,在一些文化中,這並不是很好。

+0

這將是謝謝你,夫人。並非所有技術人員都是男性。 – HLGEM

相關問題