Я в работе с базами новичек и вот с чем не могу разобраться Заголовок наверно не правильно составил, но суть такая
есть таблица заказов
в ней есть столбец idCake - id тортика который заказали, так же в ней есть столбец confirm, так вот когда на фронте нажимаю кнопку 'подтвердить заказ' я меняю 0 на 1 и запускаю ф-цию которая делает запрос в таблицу 2 в которой есть поля с id тортика и id ингредиентов входящих в состав тортика
В итоге у меня есть массив из объектов я так понимаю будет что то типа [{id:1, quantity200}, {id:2, quantity2}] - сколько нужно ингредиентов списать из таблицы 3 (склад)
И вот возникло 2 вопроса - по правильной логике я строию работу бэка и как правильнее списать ингридиенты со склада ( просто пустить массив в цикл и делать много маленьких запросов или нужно сделать один большой запрос?)
Можно как-то так
UPDATE Ингридиент as ingr
SET quantity = quantity - (SELECT quantity * Weight FROM Торт WHERE idCake = {{cakeId}} AND idIngr = ingr.id)
WHERE idIngr IN (SELECT idIngr from Торт WHERE idCake = {{cakeId}})
Или можно объединить таблицы Ингридиент и Торт вместо подзапросов
UPDATE Ингридиент as I
INNER JOIN ( SELECT quantity * Weight FROM Торт
WHERE idCake = {{cakeId}} ) as T ON I.idIngr = T.idIngr
SET I.quantity = I.quantity - T.quantity
Не тестировал код на работоспособность.
Даже на самом непримечательном железе 1000 запросов к БД отработаются так, как будто ничего и не было. Не думаю, что сайт с производством тортиков будет иметь 100к хитов в сутки. Я бы сделал 2 запроса: 1 к таблице заказов, для подтверждения, 2 для списания продуктов. Плюс ко всему, если подтверждение будет идти из админки, то думать об этом не нужно вовсе, ибо 100 таких хитов БД даже не почувствует.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники