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

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

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

都需要post一些内容的能力。

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

想法是这些应用程序部分的用法和规范可能会在以后的某个时间点变得有点不同,虽然目前使用一个 table 可能更容易,但将它们分开可能是在长运行.

中更容易维护

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

您可以为此使用 Table inheritance

将抽象 Post 实体作为博客Post、论坛Post 和社交Post 的父级。这样,您将拥有具有 DRY 属性的独立实体。