2012-05-21 28 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

感謝傑克我知道了一點點,如果你不介意的話,你能更實際一些嗎? –

+0

@user_quest通用屬性作爲常規函數參數傳遞,其餘作爲數組以字段名稱作爲鍵傳遞。至於EAV你應該能夠只是按照示例鏈接 –

+0

感謝好友我試着.. :) –

0

您可以繼續使用該add_to_cart()

,則系統會增加一個陣列參數,比方說,「屬性」或「額外」和 添加有特定/獨特產品價值鍵。

然後在數據庫中創建一個可變大小的「屬性」列。 VARCHAR(128) 並添加這些屬性編碼爲JSONs

你仍然可以搜索,然後使用 「LIKE '% 」屬性「:%' 任何產品」(JSON)

這並不強迫你爲每個新產品屬性創建額外的列。

0

您可以將主要數組和規格數組中的基本常見事物保留如下 Products [mobile] => array(name =>'test1',price =>'20'specification = array('color'= > red,model =>'N70'等....))

Products [cloths] => array(name =>'test1',price =>'30'specification = array('size'=> 'XL',color =>'yello'等)......)

+0

感謝Ganesh,但如何管理數據庫表爲此。我應該將規格存儲在購物車表中的一個字段中。 –

相關問題