2

ウェブサイト用のショッピングカートを開発していますが、ユーザーが[カートに追加]をクリックした後、商品IDをどのように保存すればよいか考えていました。

それらをセッションに保存する必要があります-など

$_SESSION['cart'][$productid]++;

これにより、負荷がかかっているサーバーに負担がかかりますか?それとも、これが最善の方法ですか?

または、一時データベーステーブルを作成し、そこに情報を保存して、注文が処理された後に削除する必要がありますか?

4

2 に答える 2

3

確かにデータベースに保存しますが、毎回一時テーブルを作成するわけではありません。未完了の注文がすべて含まれているテーブルと、ユーザーの識別子を保持することをお勧めします。

これはセッションより長く続き、ユーザーがログオフした後もすべて保持され、そのユーザーが再度ログインした後に利用可能になります。その後、ユーザーがログインしたら、セッションでユーザーの識別子を保持します。

編集:データベースへの接続はリソースを消費しますが、それがデータベースサーバーの目的です小さなテーブルへの接続では、ほとんど何も使用されません。つまり、ショッピングカートを表示するだけで、かなりの数のクエリを実行している可能性があります。小さなテーブルに奇数行を保存するためにWebサイトが余分なストレスを処理できなくなると、より大きなサーバーを購入するのに十分なお金を売り上げから得ることになります:)

于 2012-07-31T10:40:09.023 に答える
1

アイテムを格納するには、必ずデータベーステーブルを使用する必要があります。ログインしたユーザーは、しばらくしてから戻ってきた場合に、すべてのアイテムを再度取得する必要がないことを理解できます。

カートの情報をセッションに保持して、必要な情報を取得できますが、セッションとデータベースに新しい情報を設定する必要があります。そして、チェックアウトする前に、あなたはあなたの情報をクロスチェックするべきです。

もう1つの利点は、ショップで何が起こっているかを追跡できることです。誰もあなたのアイテムを購入せず、セッションでカートを保管すると、情報は得られません。

于 2012-07-31T10:53:36.373 に答える