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

Should I maximally decomposite my tables in my relational database?

我有一个 postgres 数据库 table:

我应该把它分解成三个 tables:

一个:

两个:

三个:

你能回答yes/no吗?为什么?

完整范式有时不是最佳使用方式。这是正常形式和要求之间的权衡。

所以,如果device2和device3的值是依赖于device1的(只有device1有值时才会产生),并且在某些应用程序中查询不需要单独需要它们(意味着你只需要所有记录一次),那么最好有一个 table 原样。

另一方面,每个设备的值是单独生成的,彼此不依赖,那么你应该有单独的 tables。