2012-08-04 55 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