Это зависит от того, как вы собираетесь использовать данные.Если вы намереваетесь использовать аналитические запросы (с тяжелой группировкой / фильтрацией по связанным таблицам или измерениям), возможно, структурируйте вашу базу данных, как звездную схему в стиле Kimball.
Это сделает вашу таблицу конфигураций Медленно изменяющийся тип измерения-2
Вы можете перехватывать вставку, обновления и удаления с помощью триггеров для реализации необходимой логики для истечения срока действия старых записей.
Это также будет означать, что вашТаблица будет иметь новый первичный ключ (суррогатный ключ), который будет однозначно идентифицировать записи.Ваш существующий первичный ключ - версия (frame_id, active, power_id) станет так называемым бизнес-ключом или естественным ключом:
CREATE TABLE configuration (
surrogate_key INT NOT NULL,
frame_id INT NOT NULL,
power_id INT NOT NULL,
active TINYINT NOT NULL,
hp FLOAT NULL,
efficiency VARCHAR(45) NULL,
effective_from DATE NOT NULL,
effective_to DATE NULL,
current_flag BOOL,
PRIMARY KEY (surrogate_key),
...;
Затем вы присоединитесь к другим таблицам, используя суррогатный ключ (которыйозначает, что вы присоединяетесь к конкретным версиям естественного ключа).
PS : Также стоит рассмотреть возможность хранения датffective_from иffective_to в виде целых чисел (либо в формате EPOX, либо в формате ГГГГММДД).фильтрация и объединение.
Надеюсь, это поможет.