有趣的问题...
有两条明显的路线:
id load_kW fuel_consumption_tonnes
--------------------------------------------------
1 1154 89.4
2 1199 54.2
这对人类来说很容易阅读,而且相当合乎逻辑。但是,如果某些读数以“公斤”为单位,而其他读数以“吨”为单位,则您必须将这些读数转换为适合“读数”表;这个过程必须是“无损的”,并且是幂等的。例如,“89403 公斤”的读数不是“89.4 吨”,即使企业为了方便可能会选择从公斤到吨四舍五入。通常会发生一些违反直觉的四舍五入的事情......
如果是这种情况,您可以更改架构:
id load load_unit fuel_consumption fuel_consumption_unit
--------------------------------------------------
1 1154 kW 89403 kg
2 1199 kW 54.2 t
如果需要,使用“单位”表:
unit_id unit_name
--------------------
kg kilogramme
t Tonne
但是,此模型容易出现人为故障 - 很容易更改“load_unit”列而不修改“load”列,从而破坏数据。您实际上无法对数据模型做任何事情来避免这种情况。它还使常见查询变得相当棘手:想象一下尝试以一致的度量单位检索“负载”的总数。
我建议在这种情况下,您有两个表:“raw_readings”,原始数据采用上述格式,“normalized_readings”,通过将所有读数转换为一致的测量单位来填充。