【发布时间】:2011-06-08 04:23:20
【问题描述】:
我一直想知道使用不同字段的帖子类型的最佳方法是什么。消息的帖子类型(标题、正文)将具有与照片(标题、url 路径、描述)等不同的字段。
理想情况下,我希望将它放在一个表 Posts 下,因为这样更容易在视图中聚合。它可以使用 jQuery 显示和隐藏字段,但这会在数据库中留下冗余字段。
对解决此问题的最佳方法有什么建议吗?
谢谢
【问题讨论】:
我一直想知道使用不同字段的帖子类型的最佳方法是什么。消息的帖子类型(标题、正文)将具有与照片(标题、url 路径、描述)等不同的字段。
理想情况下,我希望将它放在一个表 Posts 下,因为这样更容易在视图中聚合。它可以使用 jQuery 显示和隐藏字段,但这会在数据库中留下冗余字段。
对解决此问题的最佳方法有什么建议吗?
谢谢
【问题讨论】:
我会推荐
因此,对于适用于所有帖子类型的字段,它们存储在通用帖子表中。
然后,您可以使用帖子类型 ID 来定位其他字段,并根据帖子类型 ID 检索这些字段的数据。
所以你的通用帖子表看起来像
|编号 |标题 |作者_id |正文 |
您发布类型表将是
|编号 | post_type |
假设您有一个需要日期字段的“日历”帖子类型。我们将其称为照片帖子类型。该表将被称为“calendar_post_fields”,帖子类型将是“日历”。
|编号 | post_id |日期 |
【讨论】:
首先要做的事情。您是否必须能够在运行时添加新的“类型”?这个问题的答案可能会使其他可靠的解决方案失效。
如果问题的答案是“否”,那么请使用 gargantuan 的解决方案。为公共字段创建一个基表,为特定字段创建一个单独的表。特定表具有基表的外键。这种方式避免了动态sql,避免了冗余字段,并提供了良好的查询性能。
还有其他解决方案,但除非上述解决方案不能满足您的需求,否则我宁愿不提。
【讨论】: