三种潜在的db设计

时间:2009-10-09 18:01:41

标签: sql mysql database-design

我一直在考虑三种类似的数据库设计,但对于它们中的任何一种都没有提出非常强烈的反对意见。

  1. 内容的一个巨大的表

    content: int id, enum type, int parent_id, varchar title, text body, text data
    

    这将为每一行分配一个类型(新闻,博客等),并为常用/标准/可搜索数据提供字段,然后将任何非标准或普通数据作为序列化xml存储在data字段中

  2. 一个用于id的表,多个用于内容的表

    ids: int id, enum tableName, int parent_id
    

    这有一个用于id的大表,然后每个其他表引用此id,从而可以轻松获得分层内容。

  3. 上述两者的组合,其中主表存储所有常用信息,但不重要的数据存储在相应的表中。

  4. 当所有内容都有自己的表时,自然会更容易保持数据一致,但上述想法可以更容易地强制公共字段的标准化,并且使内容彼此关联(特别是标记)变得更加简单。 / p>

    任何想法或链接都将不胜感激。

3 个答案:

答案 0 :(得分:2)

我认为主查找表与实际内容的辅助表的想法是最好的解决方案。 Drupal具有与您描述的类似的结构,并且已经证明它非常灵活。

http://projects.contentment.org/blog/84

Drupal在单个表中有一个主“节点”数据库,并在获取实际内容时引用专用表。

我不喜欢尝试将所有内容都作为XML包装到表中。随着时间的推移,这可能会成为一种性能和灵活性。

答案 1 :(得分:0)

为什么不为每种类型的内容使用不同的表格?新闻,博客等在我看来,这将是最好和最容易使用的选项。

答案 2 :(得分:0)

不同类型内容的不同表格。如果您需要为现有内容类型添加新内容类型或其他功能,则无需担心在执行此操作时打破世界。