Это похоже на этот вопрос
В основном я пишу базу данных и программное обеспечение для системы мониторинга зданий. Система контролирует такие вещи, как температура, влажность, давление единиц (например, холодильников).
Когда для определенного устройства создается отчет, для каждого датчика у него есть столбец с именем датчика и показаниями ниже.
Я пытаюсь решить, должны ли это быть имена во время чтения или имя в том виде, в каком оно сейчас.
В настоящее время я думаю, что это должно быть последним, потому что я склонен полагать, что при том же (первичном) ключе значение , которое он уникально идентифицирует, не должно изменяться, даже если его атрибуты изменяются. Таким образом, любые изменения имени должны быть только для исправления или уточнения, IMO, почти как если бы само имя было первичным ключом (я все для естественных ключей, но, как правило, не использую имя чего-либо из-за длины и возможной необходимости в написании) исправление - в этом случае, хотя у меня есть поле «SensorNo» (не ID), которое является уникальным для устройства, которое оно отслеживает).
В любом случае - это означает, что я действительно могу использовать текущее имя, и если они меняют имя датчика с, возможно, «Воздуха» на «Еда», то оно должно сказать «Еда» во всех данных отчета, даже если оно показывает данные до изменения, идея о том, что это изменение должно означать, что оно всегда означало «Еда», а не «Воздух» - это исправление.
Ни для каких «ключевых» данных, таких как «Верхний предел» и «Нижний предел» (например, диапазон температур), при составлении отчетов следует использовать исторические данные , в данном случае, поскольку они показывают температуру Диапазон датчика на момент чтения.
Можно утверждать, что это похоже на изменение полного имени пользователя: это все тот же человек, но они могут изменить свое имя, поэтому в истории отчета всегда должны отображаться имена людей, в противном случае путаница может последовать.
Я планирую разрешить пользователям изменять имя, но сначала предупредить их о последствиях и указать, что оно должно использоваться только для исправлений.
Что думают люди по этому поводу? Как вы справляетесь с этой ситуацией? Мне тоже интересно услышать от Catcall , который ответил на связанный вопрос.
(Обратите внимание, что это не обсуждение того, как хранятся исторические данные, я уже в порядке с этой стороной).