2012-08-04 61 views
0

假設我需要爲一個白板網站設計一個數據庫。
像計算器這意味着有一個主題,一個系列文章的
但是,沒有螺紋柱(不是基於樹的設計)公告牌數據庫設計

我想到了兩個主要選項:

  1. 主題表和郵政表。帖子有「topic_id」字段
  2. 否主題表。只有一個大郵政表。

您認爲更可取的選擇是什麼?

回答

1

那麼,stackoverflow是一個標記的設計,其中一個帖子可能有多個主題/標籤。

所以捕捉到了這個在關係式的設計,你將有三個表:

  1. POST(POST_ID,作者等)
  2. 主題(topic_id,名稱等)
  3. POSTTOPIC(post_id,topic_id)

POSTTOPIC的原因是因爲帖子可能有多個標籤。使用#3,將標籤分配/取消分配到帖子或查找包含特定主題的帖子變得非常容易。 POST中的任何一列都不能適應。

+0

這在郵政和主題之間創建了多對多關係。所以它可以允許Post用於多個Topic,除非添加了某種形式的約束來防止這種情況。主題到發佈之間具有一對多關係更爲常見。要支持標籤,請添加一個帶PostTag表的單獨標籤表,以創建標籤和帖子之間的多對多關係。 – 2012-08-04 20:18:50

+0

在這種情況下,我認爲 – hythlodayr 2012-08-04 21:11:00

+0

將標籤和主題視爲等同。 – hythlodayr 2012-08-04 21:12:34