考慮一個包含表格Products和Employees的數據庫。對現有產品經理進行建模有一項新要求,即對產品負責的唯一員工,並指出某些產品簡單或足夠成熟,不需要產品經理。也就是說,每個產品可以有零個或一個產品經理。這些數據庫設計樣式(或反模式)是否有名稱?
方法1:ALTER TABLE Product
以使沒有產品經理一個產品是由NULL
值模型添加新NULL
能列product_manager_employee_ID
。
方法2:創建一個新表ProductManagers
與非NULL
能夠列product_ID
和employee_ID
,具有唯一性約束product_ID
,所以沒有產品經理一個產品是由該表中沒有行的建模。
還有其他的方法,但這些是我似乎最經常遇到的兩個。
假設這些都是合法的設計選擇(我傾向於相信)並且僅僅代表不同的風格,他們是否有名字?我更喜歡方法2,並且發現很難將風格上的差異傳達給喜歡方法1而不採用實際例子的人(正如我在這裏所做的那樣)。如果我可以說,我會更好,「我更喜歡傾向於6NF(或其他)風格我自己。「
假設其中一種方法實際上是一種反模式(因爲我只是通過將兩個實體之間的關係建模爲這些實體之一的屬性來將方法1視爲情況),此反模式是否具有反模式一個名字?
公平點,但我不打算看起來這樣。我已經厭倦了編輯,以澄清我的意圖,即每個產品將有零個或一個產品經理(對於方法2,這僅需要對產品經理ID進行唯一限制,我認爲)。 – onedaywhen 2009-06-05 10:42:33