SQL 中具有相同属性的单独表格

Seperate tables with same attributes in SQL

使用 SQL 数据库时,当我有 table 个具有相同属性的数据库时。

例如,如果我有

我还有另一种类型的帖子、评论和回复,原因不同但属性相同。

对于每种类型的帖子,我应该将它们分成三个 table,还是应该将它们放在一个 table 中,因为我在每个帖子中都有相同的属性?

那么,如果我想将数据加载到 Web 应用程序中会怎样?将数据放在一个 table 中或将其分开在检索数据的复杂性上有什么不同吗?或者什么是最好的?

你已经得到了经典 'it depends' 那里。

如果您决定将 post 类型列全部保存在一个 table 中,则必须为该类型列编制索引。但是,因为只有少数值,所以可能效率不高。

您可以根据 post 类型对 table 进行分区,这会有所帮助。

如果您有 3 个 table,您可能需要三种不同的方法来检索数据。

就我个人而言,我会选择一个 table 分区并将它们全部存储在一起。

答案完全取决于您如何使用这些表格。

统一它们将使编写以相同方式处理所有三种类型的逻辑变得更加容易(例如,向累积 X 个赞的用户授予徽章,或删除用户的所有内容)。

如果您想在将来更改这些表格(例如,添加仅适用于帖子但不适用于评论的编辑日期),将它们分开可以提供更大的灵活性。