Сейчас есть таблица
order_request. Это запрос на заказ, 5 из 15 полей меняться не могут.
Первый вопроса: есть специфические поля для каждого статуса. Например, если статус изменился на ожидает отплаты, то в колонку
need_to_payed записывается определенный
timestamp, а до этого статуса он имеет значение
NULL, но я не уверен, что это правильно. Может стоит сделать отдельную таблицу, копию заказа, для каждого статуса, который своей логикой вносит/убирает новые поля, или для каждого статуса добавить отдельные таблицы со специфическими полями, которые будут связаны один к одному к таблице
order_request?
Второй вопроса: нужно фиксировать каждое изменение таблицы. Нормально ли будет использовать таблицу типа:
create table order_update_log
(
id serial
constraint order_update_log_pk
primary key,
changed_by int not null
constraint table_name_app_users_id_fk
references app_users
on update restrict on delete restrict,
"from" json not null,
"to" json not null,
date timestamp default now() not null
);
В
from и
to вставлять
JSON_BUILD_OBJECT таблицы заказов (СУБД - PostgreSQL 12).