2012-05-21 2 views
0

Я создаю корзину покупок, где я пытаюсь добавить различные типы продуктов, например. Mobiles, clothes и т. Д. Я создал метод add_to_cart и добавил продукты на сеанс, после чего, наконец, я сохранил все продукты в таблице базы данных. Но теперь я смущен, как добавить другой продукт, потому что параметр для разных продуктов отличается, например.Как добавить несколько различных типов продуктов в корзину

1. product_id, quantity, price for mobile. 
2. product_id, quantity, price, size for cloths. 
.... 

я должен создавать различные add_to_cart() метод для различных видов продукции.

ответ

0

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

Так один продукт может иметь варианты, как:

{color: "black", size: "large"} 

И продукт может иметь два:

{memory: "2 GB", harddisk: "750 GB"} 

т.д.

0

Пока продукты имеют по крайней мере некоторые общие поля, письмо разные методы не полностью оправданы.

Другие атрибуты могут быть просто переданы как пары ключ-значение.

При записи данных в базу данных вы можете применить EAV modeling.

+0

спасибо jack Я получил это немного, вы можете быть более практичным в моем случае, если вы не против. –

+0

@user_quest общие атрибуты передаются как обычные параметры функции, остальные передаются как массив с именами полей в качестве ключей. Что касается EAV, вы должны быть в состоянии просто следовать примеру link –

+0

спасибо buddy i m try .. :) –

0

вы можете продолжать использовать add_to_cart()

вместо этого, вы добавите параметр массива, скажем, «атрибуты» или «экстра» и добавить там специфические/уникальные продукции на сумму ключей.

Затем в базе данных вы создаете столбец «атрибуты» с переменным размером, например. VARCHAR (128) и добавить эти атрибуты закодированы как JSONs

вы можете найти любой продукт, а затем с помощью "LIKE '% "атрибут":%'" (JSon)

это оленья кожа заставляет вас создайте дополнительные столбцы для каждого нового атрибута продукта.

0

Вы можете хранить основные распространенные вещи в основном массиве и спецификации в массиве спецификаций следующим образом: Продукты [mobile] => array (name => 'test1', price => '20' specification = array ('color' = > red, model => 'N70' и т. д.))

Продукты [cloths] => array (name => 'test1', price => '30' specification = array ('size' => 'XL', color => 'yello' и т. Д. ......))

+0

Спасибо Ganesh, но как управлять таблицей базы данных для этого. должен ли я хранить спецификацию в одном поле в таблице корзины. –

Смежные вопросы