这类似于这个问题
基本上我正在为建筑监控系统编写数据库和软件。该系统监控温度、湿度、设备(如冰箱)的压力等。
当为特定单元生成报告时,每个传感器都有一个带有传感器名称的列,读数如下。
我正试图决定它应该是阅读时的名字,还是现在的名字。
我目前认为应该是后者,因为我倾向于相信给定相同的(主)键,它唯一标识的数据的含义不应该改变,即使它的属性会改变。因此,任何名称更改都应仅用于更正或澄清,IMO,几乎就像名称本身是主键一样(我完全是自然键,但由于长度和可能需要拼写,我倾向于不使用名称更正 - 在这种情况下,虽然我有一个“SensorNo”字段(不是 ID),它是它正在监控的单元所独有的)。
无论如何 - 这意味着我确实可以使用当前名称,如果他们将传感器的名称从“Air”更改为“Food”,那么它应该在所有报告数据上显示“Food”,即使它显示之前的数据变化,这个变化的想法应该意味着它总是意味着“食物”,而不是“空气”——这是一个更正。
对于“上限”和“下限”(例如温度范围)等非“关键”数据,在报告时应使用历史数据,在这种情况下,因为它显示了传感器在测量时的温度范围。阅读。
您可能会说这类似于更改用户的全名:它仍然是同一个人,但他们可能会更改姓名,因此报告历史记录应始终显示人员的最新姓名,否则可能会出现混乱。
我的计划是允许用户更改名称,但首先警告他们其含义,并声明它只能用于更正。
人们对此有何看法?你如何处理这种情况?我也很想听听 Catcall的来信,他回答了这个问题。
(请注意,这不是关于如何存储历史数据的讨论,我对这方面已经很好了)。