• ベストアンサー

ショッピングカートのプログラムでDB使いますか?

ショッピングサイトでカートを作る際、サーバのセッションに商品IDなどを持たせますか?それともtmpDBなどに一時的な情報を持たせますか? サイトの規模や種類、アクセス数、ハードウェアなどにより状況は異なると思いますが、一般的にどちらが多いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • masusun
  • ベストアンサー率15% (44/285)
回答No.3

カートへの商品の出し入れの管理だけであればDBを使う必要は無いです。 ですが、一般的にはDBを使います。 最近チェックした商品、各種履歴、ログなどなど。。。 記録(保存)すべき情報は、商品戦略、運用管理など目的毎に、 現時点のカートの中身以外でたくさんありますので。。。 学生の勉強ではなく、あくまで実務としてということなら 一般的となります。

ahoaho_hiro
質問者

お礼

アマゾンではそういった情報を消費者にも見せて、自動的に「オススメ商品」を表示してきますよね。 不特定多数の消費者に販売するサイトでは一般的のようですね。(商売なんだから、やっていて当然) ありがとうございました。

その他の回答 (2)

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がると申します。 んっと…こういうものを一般化するのは極めて危険なので止めましょう。 必要なのは「その状況にマッチしているか否か」であって、一般であるかどうかという見地はこの場合なんの役にも立たないです。 で、まさにおっしゃっている通り「状況により異なる」ものです。 あと「サーバのセッション」は、語彙的にはこの場合不適切ですね。 「サーバのセッション」だけだと、実装次第でファイルベースにもDBベースにもなりますので。 んで。ファイルベースの利点は「実装が単純」であることです。DBMSが入っていないシステムでも問題なく動くので。 ただしファイル数の制限が比較的すぐに来ることその他を考えると、極めて小規模向きであることは否めません。 一方でDB ベースの場合、そのDBMSにもよりますが相応の規模まで対応が可能です。 ですので「基本はファイル。ファイルでは難しい規模ならDB」と捉えてもよいかと思います。 DBがあらかじめ存在している環境なら「直接DB」もよいと思います。

ahoaho_hiro
質問者

お礼

「サーバのセッション」 確かに色々な取り方ができますね。失礼しました。 今回の質問では、「WEBサーバでのメモリ上のセッション変数」の意味でした。 ファイルベースとは「テキストファイルなどでデータを読み書きする」という事でしょうか? ご回答いただいたように、「一般的」が解っても、あまり意味が無いかもしれませんね。 ありがとうございました。

  • kazu2296
  • ベストアンサー率39% (201/504)
回答No.1

いちいちDBにアクセスすると負荷が掛かりますし、またセッション切れたDB内の情報を削除するとかいろいろ大変なので、セッションに持たせる形が一般的ではないでしょうか?

ahoaho_hiro
質問者

お礼

そうですね。データを削除するのは面倒でしょうね。 ありがとうございました。

関連するQ&A