У меня довольно простая система магазинов.Я работаю с CakePHP.На самом деле я бы не назвал это магазином, это скорее базовая форма, где вы можете ввести свои данные и какие элементы, какого цвета вы хотите, и это все.Существует одна форма покупки, которая «открыта для публики», а затем существуют формы покупки, которые защищены паролем.Последние имеют выбор предметов (или выбор цветов), которые вы получаете на общедоступном сайте, но со скидками.Я хочу сохранить заказы в базе данных.У меня есть таблица заказов и order_products.Это работает нормально.Это работает довольно хорошо, но только потому, что я сделал что-то не очень хорошее: так как есть всего несколько продуктов, я просто написал массив в контроллере с именами, ценами и прочим ... скидками или выбором продуктов, которые я обработал простоперезаписываем свойство products.
Ну, в действительности, размещение данных в контроллере не является идеей, лежащей в основе MVC-структуры, поэтому я подумал о том, кто должен обрабатывать продукты, о выборе продуктов для различных паролей.обеспеченные формы покупки и скидки с моделями.
Моя идея заключалась в том, чтобы создать следующие таблицы:
products (id, name, price,...) -hasAndBelongsToMany Color
colors (id, name)
products_colors (product_id, color_id)
Теперь установить, в какой «закрытой зоне», какие продукты и в каком цветеи с какой специальной ценой можно заказать, я подумал о следующих таблицах (фактические имена таблиц и полей, конечно, выбраны не мудро, но только для идеи):
product_selections (id, closed-area_name, product_id, special_price) hasAndBelongsToMany Color
product_selections_colors (product_selection_id, color_id)
Когда я создаюПубличная форма покупки Я бы просто использовал три верхних таблицы.но при построении «закрытой области» я бы использовал две нижние, выбрав product_ids и special_prices из product_selection, а также различные цвета по таблице product_selections_colors для соответствующей «закрытой области» (я не знаю лучшего названия для этогопрямо сейчас...).с product_id я бы получил другую информацию о продукте из таблицы products и создал бы форму покупки с этими данными.
Я хочу иметь все это в базе данных, потому что тогда я смогу лучше работать с заказами(создание квитанций, накладных и т. д.).
Я хотел бы знать, что вы об этом думаете, потому что у меня такое ощущение, что я иду совершенно в неправильном направлении, поскольку это кажется сложным для такихпростая вещь ... я надеюсь, что вы можете мне помочь.