我应该在关系数据库中最大程度地分解我的表吗?

时间:2018-02-15 03:08:31

标签: database postgresql performance decomposition

我有一个带有一个表的postgres数据库:

  • id
  • Device1_Value
  • Device1_SomeAdditionalInfo
  • Device2_Value
  • Device2_SomeInfo
  • Device3_Value

我应该将它分解为三个表:

一:

  • id
  • Device1_Value
  • Device1_SomeAdditionalInfo

二:

  • id
  • Device2_Value
  • Device2_SomeInfo

三:

  • id
  • Device3_Value

你能否回答是/否以及为什么?

1 个答案:

答案 0 :(得分:3)

完全正常形式有时不适合使用。这是正常形式和要求之间的权衡。

因此,如果device2和device3的值依赖于device1(仅当device1有值时才生成它们),并且在某些应用程序中不需要通过查询单独使用它们(意味着您只需要一次所有记录),那么最好有一个单独的表。

另一方面,每个设备的值是分开生成的,而不是相互依赖,那么你应该有单独的表。