2012-01-02 19 views
1

買い物袋からmysqlデータベースにセッションデータ(配列)を保存する最も効率的な方法は何でしょうか?訪問者が新しい訪問時にショッピングバッグのコンテンツを取り戻すようにする。ショッピングバッグのデータをmysql dbに保存する最も効率的な方法

私が今保管する必要があるのは、ユニークなバッグID - 製品ID( 's) - と日付時間(Cronの古いバッグまで)です。

単純な「暗号化アルゴリズム」でbagIDをクッキーに保存することを考えています。 したがって、ユーザーは異なるブラウザー/コンピューター上で異なるバッグを持つことができます。

私は考えているオプション:

  1. いずれかを使用し、テーブルとデータの列に格納するための袋セッション配列を殺菌またはjson_encode:

    BAGS 
    ----- 
    bagID    | data | date_added   
    int (AUTO_INCREMENT)| text | datetime 
    
  2. のような2つのテーブルを使用しますこの:

    BAGS 
    ----- 
    bagID    | date_added   
    int (AUTO_INCREMENT)| datetime 
    
    BAGS_CONTENT 
    ----- 
    ID (relate to bagID)| productID (list all products in the bag) 
    int     | int(10) 
    

私は単純な "暗号化アルゴリズム"でbagIDをクッキーに格納することを考えています。 したがって、ユーザーは異なるブラウザー/コンピューター上で異なるバッグを持つことができます。

最高のパフォーマンスではどのようなオプションがありますか?パフォーマンスに著しい違いがありますか?あるいは、オプションの1つが悪いですか?

オプション1では、bagIDにプライマリキーを使用することをお勧めしますか?
オプション2では、bagIDにプライマリキーを使用し、IDに外部キーを使用することをお勧めしますか?

答えて

0

私はシリアル化するつもりです。罰金と将来の柔軟性。しかし、セッションID以外のクッキーを使用する必要があるかもしれません。

+0

あなたの投稿に署名しないでください。 –

0

私はオプション#2のアイデアが好きで、bagIDは良いプライマリキーにする必要があります。

2つの質問があります。ユーザーをショッピングバッグにどのように結び付けていますか?そして、ユーザーは複数のショッピングバッグを持っていますか?

私が行う方法は、customersID(各ユーザーの一意の識別子)をバッグテーブルに追加することです。しかし、ユーザーが1つのショッピングバッグしか持てない場合は、bagIDはまったく必要なく、customerIDでインデックスすることもできます。

+0

私は単純な "暗号化アルゴリズム"でbagIDをクッキーに保存することを考えています。 したがって、ユーザーは異なるブラウザー/コンピューター上で異なるバッグを持つことができます。 – Rob

関連する問題