@vladislav3101

Как правильно хранить заказы продуктов в базе данных mysql?

Почитал статьи в интернете о архитектуре бд и сделал такую структуру бд.
1. Таблица product - Все свойства продукта, имя, цена и т п.
2. Таблица orders - Все данные о заказчике, дата создания заказа, статусы (Отменен, Принят, Доставлен и т п)
3. Таблица order_product - product_id, order_id, count.
И вот начал писать код и сразу же столкнулся с нюансами. На фронте я храню данные корзины в массиве, где каждый продукт в виде json объекта при оформлении заказа, я на сервер отправляю этот же массив, и подумал зачем мне тогда таблица "order_product", если я могу хранить тот же массив в таблице orders и будет меньше запросов в бд. Подскажите, если хранить массив продуктов в таблице orders - это правильное решение или же все таки придерживаться статьям из интернета?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
BojackHorseman
@BojackHorseman
...в творческом отпуске...
в бд всего три типа связей и они всегда хранятся одинаково.
гуглите типы связей бд, чтобы за вас не искали другие. вызубрите те три картинки и не задавайте впредь нупланских вопросов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если ваши данные нужны исключительно для хранения в БД (записали/прочитали), то можете держать их в любом виде. Если же с ними нужно будет работать - выполнять поиск, агрегацию, изменение - то правильно записывать их в отдельную таблицу и приводить базу в нормальную форму.
Ответ написан
firedragon
@firedragon
Senior .NET developer
Учтите важный момент. В момент формирования ордера вы должны зафиксировать цену и описание товара, и ещё сохранить ссылку на оригинальный товар. Особое веселье если у вас мультивалютная оплата. Так что нормализация тут похоже только навредит.
Ответ написан
Ваш ответ на вопрос

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

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