我一直在考虑三种类似的数据库设计,但对于它们中的任何一种都没有提出非常强烈的反对意见。
内容的一个巨大的表
content: int id, enum type, int parent_id, varchar title, text body, text data
这将为每一行分配一个类型(新闻,博客等),并为常用/标准/可搜索数据提供字段,然后将任何非标准或普通数据作为序列化xml存储在data
字段中
一个用于id的表,多个用于内容的表
ids: int id, enum tableName, int parent_id
这有一个用于id的大表,然后每个其他表引用此id,从而可以轻松获得分层内容。
上述两者的组合,其中主表存储所有常用信息,但不重要的数据存储在相应的表中。
当所有内容都有自己的表时,自然会更容易保持数据一致,但上述想法可以更容易地强制公共字段的标准化,并且使内容彼此关联(特别是标记)变得更加简单。 / p>
任何想法或链接都将不胜感激。
答案 0 :(得分:2)
我认为主查找表与实际内容的辅助表的想法是最好的解决方案。 Drupal具有与您描述的类似的结构,并且已经证明它非常灵活。
http://projects.contentment.org/blog/84
Drupal在单个表中有一个主“节点”数据库,并在获取实际内容时引用专用表。
我不喜欢尝试将所有内容都作为XML包装到表中。随着时间的推移,这可能会成为一种性能和灵活性。
答案 1 :(得分:0)
为什么不为每种类型的内容使用不同的表格?新闻,博客等在我看来,这将是最好和最容易使用的选项。
答案 2 :(得分:0)
不同类型内容的不同表格。如果您需要为现有内容类型添加新内容类型或其他功能,则无需担心在执行此操作时打破世界。