У меня есть следующие таблицыБлок записи с обновлением
tbl_orders
CREATE TABLE tbl_orders (
id integer NOT NULL,
customer_name character varying NOT NULL,
is_archived boolean NOT NULL
);
tbl_order_items
CREATE TABLE tbl_order_items (
id integer NOT NULL,
product_name character varying NOT NULL,
quantity integer NOT NULL,
order_id int NOT NULL
);
В моем приложении у меня есть возможность заархивировать заказ, какой набор boolean isArchived to true для этой записи порядка. В записи заказа может быть несколько элементов заказа, которые я хочу предотвратить, чтобы не обновляться, когда порядок имеет значение boolean isArchived, установленное в true. Должен ли я установить логическое значение isArchived на уровне позиций заказа?
Можно ли предотвратить это на уровне базы данных?
Один из вариантов заключается в создании триггера (до обновления) для tbl_order_items, который проверяет флаг tbl_orders is_archive для того, чтобы не выполнять обновление - https://www.postgresql.org/docs/current/static/sql-createtrigger.html. –