сделал DDL для пет проекта
This commit is contained in:
+26
@@ -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, и не будет никаких ошибок
|
||||
-- Если выполняетя как транзакция, то просто откатится назад и все будет супер
|
||||
-- Тк база сама откатывает транзакции в случае надобности, это освобождает инженера от доли ответственности
|
||||
Reference in New Issue
Block a user