Intereting Posts
функция доступности домена php В чем разница между расширениями DOM PHP и SimpleXML? Передача ввода (формы) со страницы на себя Laravel: изменить корневой каталог проектов Как выполнить HTTP POST в Utf-8 -> php script -> mysql PHP 5.4 Не может определять временные зоны самостоятельно Неустранимая ошибка: вызов функции-члена prepare () для не-объекта с PDO Как сохранить файл после его редактирования с помощью jquery с помощью php? Хранение javascript Date () в mySQL Узел XML с смешанным контентом с использованием PHP DOM У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' '') 'в строке 2 Ошибка elasticsearch bool в php-клиенте Как проверить, является ли URL-адрес внешним URL-адресом или внутренним URL-адресом с помощью PHP? Группировка mysql по категориям и отображение их в группы по каждой категории Как создать переменные из XML-данных в PHP?

Как хранить сложные данные о товаре / заказе в MySQL?

Я работаю над системой заказов для своего интернет-магазина. У меня есть 2 таблицы:

  1. продукты, хранящие информацию о продуктах
  2. заказы, сохраняющие общие идентификаторы и информацию о заказах клиентов.

Теперь я хочу иметь способ хранения сложных заказов клиентов в базе данных. Мне нужно что-то, что позволит мне узнать, сколько каждого размера (S, M или L) каждого продукта находится в заказе.

Сложная часть заключается в том, что я хочу иметь возможность добавлять / редактировать / удалять продукты (конечно, не влияя на заказы из прошлого), поэтому метод должен быть гибким

Как мне это сделать?

  1. отдельная таблица для каждого заказа, с продуктами в виде строк?
  2. одна таблица для всех заказов, с продуктами в виде столбцов?
  3. другой вариант?

Благодаря!

По крайней мере, вам нужно:

Products (one row per product) ProductID Size Orders (one row per order) OrderID OrderDetails (one row per product per order) ProductID OrderID Size 

Обратите внимание, что каждый «размер» – это собственный ProductID. Вероятно, вы захотите иметь еще один идентификатор, который группирует продукты, которые являются одним и тем же «базовым» продуктом, но разных размеров.

Поэтому, если у заказа № 1 есть три продукта, а у заказа № 2 – четыре, то у OrderDetails будет семь строк:

 OrderID ProductID Quantity 1 234 2 1 345 9 1 456 30 2 432 1 2 234 65 2 654 8 2 987 4 

Зависит от ваших целей для вашей тележки. Например, вы хотите разрешить гостевые покупки? т.е. когда пользователю не нужно входить в систему, чтобы совершить покупку?

Прилагаемое изображение – это дизайн, над которым я работал, и он выглядит следующим образом:

  1. Посетитель выбирает продукты с сайта и добавляет их в сеансовую тележку (просто место для временного хранения продуктов, их количества и их цены и т. Д.).

  2. После того, как клиент готов к регистрации, мы создаем заказ, лицо заказа и person_address (где продукт должен быть доставлен) и добавьте элементы в таблицу order_item. Вся эта информация добавляется клиентом на странице проверки.

  3. Последний шаг заключается в том, чтобы предложить способы оплаты: paypal, кредитная карта и т. Д.

Что мне нравится в этом проекте, так это то, что пользователи не обязаны регистрироваться у нас. Order_person действует как своего рода интерфейс между пользователями и заказами. Если вы регистрируетесь, мы просто связываем order_person с таблицей пользователя …

Я также включил образец лицевой части страницы проверки.

Дизайн базы данных заказа продукта

введите описание изображения здесь