3

私は自分のウェブサイト用のショッピングカートを作っています。

セッションにデータを保存するか、テーブルにデータを保存するか、どちらがより良い解決策ですか?テーブルに保存した場合、テーブル内のレコードをいつどのように削除しますか(つまり、ユーザーが購入したのではなく、テーブル内にある場合)

4

4 に答える 4

3

私の特定のケースで行うことは、情報をCartOrderテーブルに保存することです。ステータスは「保留中」です。プロセスが終了したら、Order テーブルに情報を挿入し、CartOrderに完了のフラグを立てます (または削除します)。私にとって、CartOrderは購入の意図であり、Orderは購入そのものです。

CartOrder を削除しなくても問題ありません。後で使用できます (購入を完了していなくても、Amazon や他のサイトが最後のカートを利用可能な状態に維持する方法を見てください)。これは、サイトにアクセスし、周りを見回し、カートを開始したが購入を完了しなかったユーザーの数を追跡するのにも役立ちます。ユーザーはこれを気に入っています。

于 2009-11-19T05:38:13.700 に答える
2

好みの問題。どちらも合理的です。DBは、購入しようとしているもの、または少なくとも顧客の関心の観点からキューに入れられているものを分析する機能を提供します。そのデータは、多くの場合、提供物への強い関心を示すものとして非常に有効であり、多くの場合、データは削除されず、テーブルの属性としての有効期限または少なくともセッションID。

DB方式に従って、削除する場合は、cronまたはその他のスケジュールされたジョブで毎日または毎週実行して、有効期限が切れたすべてのレコードを削除できる簡単なパージです。

于 2009-11-19T05:35:47.673 に答える
2

あなたがやりたいことに依存します。

通常のソリューションはを使用します$_SESSION。このソリューションは実装が簡単で、Webサイトのパフォーマンスに影響を与えることはありません。

タイムアウトがなく、信頼性が少し高いため、データベースセッションは便利です。

値札が高額な場合は、DBセッションを利用する方がよいと思います。ユーザーは通常、10,000ドルを超えると、考える時間が長くなるからです。

通常の製品の場合、SESSIONソリューションで問題ありません。

于 2009-11-19T05:37:11.317 に答える
1

Amazon からヒントを得て、データをデータベースに保存し、決して削除しないでください。

カート内のアイテムから得られる価値はどれくらいですか? カートの中身を保管するのにいくらかかりますか? 誰かがカートを放棄し、1 年後にあなたのサイトに戻ってきた場合、その人はまだカート内の商品を欲しがっているかもしれません。

于 2009-11-19T05:37:40.290 に答える