0

Mobilesなど、さまざまな種類の製品を追加しようとしているショッピング カートを作成しています。メソッドclothesを作成し、add_to_cartセッションに製品を追加し、最後にすべての製品をデータベース テーブルに保存します。しかし、製品ごとにパラメーターが異なるため、別の製品を追加する方法がわかりません。

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

add_to_cart()製品の種類ごとに異なる方法を作成する必要があります。

4

4 に答える 4

0

製品に少なくともいくつかの共通のフィールドがある限り、異なるメソッドを書くことは完全に正当化されるわけではありません。

他の属性は、キーと値のペアとして簡単に渡すことができます。

データをデータベースに書き込むときに、 EAVモデリングを適用できます。

于 2012-05-21T10:18:36.953 に答える
0

add_to_cart()を使い続けることができます

代わりに、「attributes」や「extra」などの配列パラメータを追加し、そこに特定の/一意の製品値キーを追加します。

次に、データベースで可変サイズの「属性」列を作成します。VARCHAR(128)そしてJSONとしてエンコードされた属性を追加します

それでも、 "LIKE'%" attribute ":%'"(json)を使用して任意の製品を検索できます

これにより、新しい商品属性ごとに追加の列を作成する必要はありません。

于 2012-05-21T10:27:42.107 に答える
0

あなたのシナリオでは、製品オプションを JSON 文字列として送信し、それをサーバー側でデコードして、製品ごとに異なるオプションについて心配する必要がないようにすることをお勧めします。

したがって、製品には次のようなオプションがあります。

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

また、製品 2 には次のようなものがあります。

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

于 2012-05-21T10:14:53.990 に答える
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',etc......))

于 2012-05-21T11:41:24.120 に答える