0

我有一个需要进行一些更改的现有数据库。我需要决定是更改表以记录额外数据还是使用已经记录该数据的现有表进行单独测试并将其链接到具有新表的另一个表。

现存的:

tSubTest(ixSubTest (pk), ixTest (fk))
tPressureVolume( ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...)
tMotorData( ixMotorData (pk), ixSubTest (fk), ...data fields2...)

选项1:

tSubTest(ixSubTest (pk), ixTest (fk))
tPressureVolume( ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...)
tMotorData( ixMotorData (pk), ixSubTest (fk), ...data fields2..., ...data fields 1...)

选项 2:

tSubTest(ixSubTest (pk), ixTest (fk))
tPressureVolume( ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...)
tMotorData( ixMotorData (pk), ixSubTest (fk), ...data fields2...)
tMDPVLink( ixMDPVLink (pk), ixMotorData (fk), ixPressureVolume (fk))

基本上它的工作方式是在测试序列开始时进行一次检查压力体积的测试。现在他们想每五分钟记录一次它和其他电气数据。他们仍将执行初始压力容量测试。

4

2 回答 2

2

我有一个需要进行一些更改的现有数据库。我需要决定是更改表以记录额外数据还是使用已经记录该数据的现有表进行单独测试并将其链接到具有新表的另一个表。

我不会仅仅基于在项目后期添加的事实将某些内容放入单独的表中并附上参考。

尝试将这些属于一起的信息位保持在一起-> 我宁愿使用额外的一列或两列更新现有表,而不是创建一个人工的新“链接”表。

此规则的唯一例外可能是,如果您有大量列(例如:10 个或更多)构成一个逻辑实体,并且仅在不到 10% 的案例中出现在您的业务案例中。

例如,如果您有一个特定类型的客户需要大量额外字段,但实际上只有少数客户(例如您的“黄金”客户),那么最好将这些“集群”数据放入单独的表中并将其链接起来 - 因为否则对于绝大多数数据库实体来说,一大堆字段都将为空(NULL)。

希望能有所帮助——只是我自己的 2 美分 ;-)

于 2009-11-25T19:52:42.063 回答
1

如果同时采样所有数据(电机 + 泵),则将所有数据放在一张表中,如下所示:

pump_model_02

如果压力/体积的采样独立于电机数据,请使用:

pump_model_03

于 2009-11-25T21:42:00.780 回答