基于帖子类型的数据库结构

时间:2011-01-12 23:00:59

标签: database database-design

我一直想知道使用不同字段的帖子类型的最佳方法是什么。邮件的标签类型(标题,正文)将具有与照片不同的字段(标题,网址路径,描述)等。

理想情况下,我希望将它放在一个表帖子下,因为它更容易在视图中聚合。它可以使用jQuery显示和隐藏字段,但这会在数据库中留下冗余字段。

有关最佳解决方法的任何建议吗?

由于

2 个答案:

答案 0 :(得分:1)

我建议

  1. 具有帖子类型字段的通用帖子表。
  2. 帖子类型表
  3. 各个帖子类型的特定表格。
  4. 因此,对于适用于所有帖子类型的字段,它们存储在通用帖子表中。

    然后,您可以使用帖子类型ID来查找其他字段,并根据帖子类型ID检索这些字段的数据。

    所以你的通用邮政表看起来像

    | id |标题| author_id |文字|

    您发布的类型表将是

    | id | post_type | < - post_type是一个字符串

    让我们说你有一个需要日期字段的“日历”帖子类型。我们称之为照片发布类型。该表将被称为“calendar_post_fields”,而帖子类型将是“日历”。

    | id | post_id |日期|

答案 1 :(得分:0)

首先要做的事情。您是否必须能够在运行时添加新的“类型”?这个问题的答案可能会使其他解决方案失效。

如果问题的答案是“否”,那么请使用庞大的解决方案。具有公共字段的基表,以及特定字段的单独表。特定表具有基表的外键。这样可以避免动态sql,避免冗余字段,并提供良好的查询性能。

除非上述解决方案无法满足您的需求,否则我不想提及其他解决方案。