@dev400

Записывать сумму в базу, или считать ее при каждом запросе?

В работе часть системы с заказами. При новом заказе создается запись в таблице `order`, в столбце `items` лежит json массив заказанных предметов(наименование, количество, цена). Сумма в базу не сохраняется. На клиенте сумму вывожу тупо пересчетом в цикле. Стоит ли при добавлении нового заказа, и при редактировании существующего писать сумму в отдельный стоблец?
  • Вопрос задан
  • 206 просмотров
Решения вопроса 2
@aresouji
Если вы используете mysql 5.7 рекомендую посмотреть функции для работы с json.
Если версия ниже 5.7, то вы не совсем правильно организовали структуру своей базы, смотрите в сторону различных связей: много ко многим, один ко многим, один к одному.
Ответ написан
riky
@riky
Laravel
Если вас все остальное устраивает то просто заверните расчёт суммы в функцию или метод.
getordersum(order)
И везде вызывайте её.
Даже если потом сделаете отдельное поле, то просто функцию поменять на вывод этого поля.
Главное избежать дублирования кода.

Из минусов для себя вижу только то что сложно будет делать акции скидки, например купи 3 бутылки по цене двух. Либо скидки за покупку двух разных товаров. Либо личная скидка клиенту. Хотя можно потом просто добавить поле размер скидки. И вычитать его из суммы. Если в функцию будет передаваться весь объект заказа, то изменить логику будет просто в одном месте
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы