Я в работе с базами новичек и вот с чем не могу разобраться Заголовок наверно не правильно составил, но суть такая
есть таблица заказов
в ней есть столбец 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 таких хитов БД даже не почувствует.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
есть две таблицы: BOOKS и COMMENTS, а также массив ID(более 100)Table BOOKS :+ ID_BOOKS + ID_EBOOKS + TABLE COMMENTS: + ID + MARK +
Есть две таблицы , в первой содержаться имена(Ваня, Андрей, Иван) , во второй их лицевой счет, как сделать так чтобы при изменении лицевого счета...
Есть таблица, одним запросом хочу получить, к примеру, 2 значения - сумма значений value и сумма значений points, но не могу понять, как составить...