我应该为类似的用途创建不同的SQL表,还是只创建一个带参数的表


Should I create different SQL tables for similar usages or create just one with a parameter?

在我的应用程序(symfony2/doctrine2/mysql)中,我有一个论坛、一个博客和一个小型社交网络。

所有这些都需要能够发布一些内容。

我应该更好地为特定元素创建不同的表(blog_post、forum_post、social_post表),还是只创建一个post表并将其附加到post_category表中,该表将包含这些forum/blog/social_network行?

其想法是,这些应用程序部分的用法和规范可能会在以后的某个时间点变得有点不同,尽管目前使用一个表可能更容易,但从长远来看,将它们分开可能更容易维护。

在这种情况下,最佳做法是什么?

您可以使用表继承来实现这一点。

将抽象Post实体作为BlogPost、ForumPost和SocialPost的父实体。通过这种方式,您将拥有具有DRY属性的独立实体。