我爲文化網站創建了一個簡單的ERD。這些關係是否正確?ERD中的關係問題
cul_categories(|| ----- | < - )cul_pages //旅遊至少有一個頁面
cul_categories(|| ----- O- < - ) - 行業標準//如Arts- --->音樂,繪畫等,或者可以有,例如,沒有子類別的旅行。
sub_categories(|| ----- | < - )cul_pages //如果我們有音樂,那麼至少有一個網頁。
我爲文化網站創建了一個簡單的ERD。這些關係是否正確?ERD中的關係問題
cul_categories(|| ----- | < - )cul_pages //旅遊至少有一個頁面
cul_categories(|| ----- O- < - ) - 行業標準//如Arts- --->音樂,繪畫等,或者可以有,例如,沒有子類別的旅行。
sub_categories(|| ----- | < - )cul_pages //如果我們有音樂,那麼至少有一個網頁。
很難確定,如果它是正確的,但有一個問題。您無法強制執行關於「網頁」在任何類別或子類別中的規則,因爲您無法將外鍵列設置爲非空值。
爲了避免這種情況,你可以改變模型如下:
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
但是如果頂級類別沒有子類別而是頁面呢? –
然後,您的Page表具有鏈接到頂級類別的CategoryID值。我已經添加了一些示例數據來解釋。 –
好多了。謝謝Neville –
現在你有10個;) –
謝謝DT的。你很棒:) –
我沒有繪畫工具。你們的關係是一致的。只有您可以告訴我們他們是否準確地映射了要保存的數據(正確)。你可能想要考慮一個具有確定該類別是否具有父級(是子類別)的值的cul_categories。 –