сделал DDL для пет проекта

This commit is contained in:
mnoskov
2026-03-17 17:29:45 +03:00
parent 3f307b95ac
commit 69d49c501d
18 changed files with 45 additions and 0 deletions
@@ -0,0 +1,26 @@
-- Задание 1. Оформление закзаза
INSERT INTO mnoskov.orders (id, user_id, order_date, status) VALUES
(9, 10, '2026-03-13', 'paid'),
(10, 10, '2026-03-14', 'paid');
INSERT INTO mnoskov.order_items (order_id, product_id, quantity, price_at_purchase) VALUES
(9, 3, 2, 88000),
(10, 6, 1, 5900);
UPDATE mnoskov.products
SET in_stock = FALSE
WHERE id IN(3, 6);
-- Если выполнятся не все шаги, то транзакция откатится и все останется как было
-- Потому что заказ если оформляется, то полностью, частично он выполняться не должен
-- Задание 2
-- При таком сценарии все должно откатаиться к самому началу, ничего не сохранится
-- Если не делать rollback, то можно получить заказы без продуктов, или без стомости, или полностью оформленный заказ, но продуктов нет в наличии
-- Любые 'битые' заказы повлияют на отчеты и витрины
-- Задание 3
-- При изменении цены товара в products, это действие могут начать выполнять два человека одновременное, и если это не будет транзакцией то получится непонятно что, а если как транзакция, то сначала запишется 1 результат, а потом 2, и не будет никаких ошибок
-- Если выполняетя как транзакция, то просто откатится назад и все будет супер
-- Тк база сама откатывает транзакции в случае надобности, это освобождает инженера от доли ответственности