2012-12-28 58 views
2

我爲文化網站創建了一個簡單的ERD。這些關係是否正確?ERD中的關係問題

cul_categories(|| ----- | < - )cul_pages //旅遊至少有一個頁面

cul_categories(|| ----- O- < - ) - 行業標準//如Arts- --->音樂,繪畫等,或者可以有,例如,沒有子類別的旅行。

sub_categories(|| ----- | < - )cul_pages //如果我們有音樂,那麼至少有一個網頁。

enter image description here

+2

現在你有10個;) –

+0

謝謝DT的。你很棒:) –

+0

我沒有繪畫工具。你們的關係是一致的。只有您可以告訴我們他們是否準確地映射了要保存的數據(正確)。你可能想要考慮一個具有確定該類別是否具有父級(是子類別)的值的cul_categories。 –

回答

2

很難確定,如果它是正確的,但有一個問題。您無法強制執行關於「網頁」在任何類別或子類別中的規則,因爲您無法將外鍵列設置爲非空值。

爲了避免這種情況,你可以改變模型如下:

TABLE: Category 
------------------- 
CategoryID (PK) 
ParentCategoryID (FK) 
Name 

TABLE: Page 
-------------- 
PageID (PK) 
CategoryID (FK) 
... 

這允許您創建從頁類別NOT NULL外鍵關係;具有NULL ParentCategoryID的類別是「頂級」類別,而具有parentCategoryID的類別是子類別。

的樣本數據:

Category 

CategoryID ParentCategory Name 
----------------------------------------- 
1    null    Arts 
2    1     Painting 
3    1     Music 
4    null    Travel 


Page 

PageID CategoryID  Name 
------------------------------------- 
1   2     Page about painting 
2   3     Page about music 
3   3     Another page about music 
4   4     Page about travel 
+0

但是如果頂級類別沒有子類別而是頁面呢? –

+0

然後,您的Page表具有鏈接到頂級類別的CategoryID值。我已經添加了一些示例數據來解釋。 –

+0

好多了。謝謝Neville –