2017-06-19 53 views
0

我正在爲報紙創建一個網站。其所有文章都有一個部分,大多數文章直接位於其部分:/section_name/article_name。但是,有些文章並非直接隸屬於他們的部門 - 他們屬於第/section_name/subsection_name/article_name/。我將如何構建這個數據庫,並不是所有的文章都在一個小節下?我最初的想法是ONE Section has MANY Subsections has MANY Articles。但是,我將如何處理「可選分部」問題?如何構建一個可選的許多數據庫?

一個解決方案是有兩個關係:ONE Subsection has MANY ArticlesONE Section has MANY Articles。這樣,一篇文章可以在一個章節和一個小節中。但是,這對我來說並不直觀, SubsectionSection完全沒有關係?還有其他解決方案嗎?

只是另一個註釋:請求一篇文章,其中有以下參數:/:section_name(/:subsection_name)/:article_name,其中冒號標記參數,圓括號標記可選參數。

回答

0
  1. 你自己建議的方式,但是從子部分添加一個外鍵到部分。
  2. 爲每個部分建立默認或「主要」子部分,因此所有文章僅鏈接到子部分。
  3. 使用帶有「父節」列的單節/子節表。這將允許部分/子部分嵌套到任何深度,您可能想要使用應用程序規則進行控制。

編輯: 在第三種方法中,section/subsection表將有一個外鍵本身。如果不爲空,則該外鍵標識父節。該結構可以表示任何寬度或深度的小節樹,並且文章可以與該樹中的任何節相關聯。這種類型的結構對於您所描述的簡單場景而言可能過於誇張,但足夠靈活以適應您概念模型的某些擴展,而無需更改物理結構。

+0

你能解釋一下你的第三個解決方案嗎? –

+0

@JasonKao:按請求編輯。 –

相關問題