Необходимо спроектировать триггера, которые будут обрабатывать логику и целостность данных в таблицах.
- При изменении поля скидка (orders.discount) должны пересчитываться суммы по строкам заказа (orders_detail.str_sum).
- При добавлении строки заказа, удалении строки заказа или изменении цены или количества по строке заказа должна изменяться сумма заказа (orders.amount).
- При изменении цены или количества по строке заказа должна автоматом пересчитываться сумма по строке заказа (orders_detail.str_sum).
- Поле в строке заказа orders_detail.idx порядковый номер должен формироваться автоматически и в нумерации строк заказа не должно быть пропусков. Последовательность должна быть строго 1,2, … количество строк заказа.
- Значение скидки (orders.discount) может иметь значение от 0 до 100
- Сумма по строке вычисляется следующим образом = цена(orders_detail.price)*количество(orders_detail.qty)* (1-скидка(orders.descount)/100)
Ограничения: Изменять можно только следующие поля orders.n_doc orders.date_doc orders.discount orders_detail.id_order orders_detail.price orders_detail.qty orders_detail.sku остальные пересчитываются автоматически.