2012-02-14 56 views
5

對於學校項目,我們必須創建自己的數據庫。我決定創建一個數據庫來管理我的電子元件庫存。作爲要求,我們需要創建一個ER圖,然後從該圖派生數據庫模式。對我來說不幸的是,教授認爲我創建的圖可以被簡化,並且「部分」實體是不必要的。簡化數據庫ER圖/模式

This是我想出來的圖,here是派生模式。

如果我刪除了零件實體,那麼爲了使電路實體「使用」任意數量的任何零件,並使每個零件與可能的任何電路相關聯,我必須有一個單獨的M對N從每種組件類型到電路的關係。每個關係都會生成一個新表。這肯定會超過我們爲該項目所允許的最大數量的表格。

如果教授特別提到Part是不必要的,那麼必須有某種方法將其刪除,從而導致更簡單的ER圖和模式 - 但我看不到它是什麼。

也許你們可以看到它是什麼,並給我一個提示?編輯: 丹W有一個很好的建議。我可以通過給每個部件類型(電容器,電阻器等)自己的鍵來消除該部分。然後在內部使用部分,包含這些組件的外鍵。我將不得不假設表中的每個條目只與一個部分相關,其餘部分爲空。 Here's生成的模式。這個模式應該很好。但是現在我必須弄清楚ER圖的哪些修改將與該模式相對應。

編輯2: 我得出結論,我正在尋找的關係是n元。根據幾個來源,要從n元轉換爲模式,可以將每個參與實體類型的關係的主鍵包含爲外鍵。然後添加簡單的屬性。我想出了This

+1

難道你不能將PartID更改爲ResistorID,CapicatorID等,然後將這些列添加到Uses_​​Part表中? – 2012-02-14 21:58:00

+0

好的建議。我以前想過這個,但我不完全確定如何在ER圖中表示這一點。這可能是一種非正式的關係,但我必須看到。 – Schmidget 2012-02-14 22:54:16

+2

我真的很喜歡你的設計。我什麼都不會改變。有不同種類的零件,具有不同的屬性,每個零件(電阻器,電容器等)都有獨立的實體。 Part部件實體需要作爲這些的超類型實體。正如你所說(正確)用於M:N關係。 – 2012-02-14 23:20:55

回答

1

您擁有嚴格的最大表格數量(物理設計),但是您在ER圖中受限於該實體數量(邏輯設計)?所有零件 - 電阻器,晶體管,電容器和通用IC - 的實體可以存儲在一個零件表中,零件,電阻器,晶體管,電容器和通用IC的所有屬性都可以爲空列。如果一個屬性對所有類型都有效,那麼它是不可空的。在零件表中包含另一列,用於標識零件類型(電阻器,晶體管,電容器或IC),儘管您在所有實體中已經有一個類型列可能也可以用於此目的。

架構中的部分表現爲:

PartID (PK) 
Quantity 
Drawer 
Part Type 
Value 
Tolerance 
Subtype 
Power Rating 
Voltage 
Term_Style 
Diam 
Height 
Lead_Space 
Name 
Case 
Polarity 
Use 
V_CE 
P_D 
I_C 
H_FE 
Package 
Pins 
Description 

和你放下電阻架構中的,電容器,晶體管和通用IC表。將這些實體留在您的ER圖中是因爲它顯示了Parts表中的哪些屬性對於每種零件類型都是必需的(不應該爲空)。