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