これはこの質問に似ています
基本的に私は建物監視システム用のデータベースとソフトウェアを書いています。システムは、ユニット(冷蔵庫など)の温度、湿度、圧力などを監視します。
特定のユニットについてレポートが生成されると、センサー名が付いた各センサーの列があり、以下の読み取り値があります。
読んだ時の名前なのか、今の名前なのかを決めようとしています。
同じ(主)キーが与えられた場合、それが一意に識別するデータの意味は、その属性が変更されても変更されるべきではないと私は信じがちなので、現在は後者である必要があると思います。したがって、名前の変更は、名前自体が主キーであるかのように、修正または明確化のためだけに行う必要があります(私はすべて自然キーですが、長さとスペルの必要性のために何かの名前を使用しない傾向があります)修正-この場合、監視しているユニットに固有の「SensorNo」フィールド(IDではない)がありますが)。
とにかく、これは実際に現在の名前を使用できることを意味します。センサーの名前をおそらく「Air」から「Food」に変更すると、以前のデータが表示されている場合でも、すべてのレポートデータで「Food」と表示されます。変更、この変更であるという考えは、それが常に「空気」ではなく「食品」であることを意味するはずです-それは修正です。
「上限」や「下限」などの「重要な」データ(たとえば、温度範囲)がない場合は、レポート時に履歴データを使用する必要があります。この場合、履歴データは、その時点でのセンサーの温度範囲を示しているためです。読む。
ユーザーのフルネームを変更するのと似ていると言えます。同じ人物ですが、名前が変更されている可能性があるため、レポート履歴には常に最新の名前が表示される必要があります。そうしないと、混乱が生じる可能性があります。
私の計画は、ユーザーが名前を変更できるようにすることですが、最初にその影響について警告し、修正にのみ使用する必要があると述べています。
これについての人々の考えは何ですか?この状況にどのように対処しますか?リンクされた質問に答えたCatcallからの連絡にも興味があります。
(これは履歴データがどのように保存されるかについての議論ではないことに注意してください、私はすでにその側面で大丈夫です)。