カートの設計をしております。 - PHPプロ!Q&A掲示板

1549

  • 0P

カートの設計をしております。

質問日時 / 2008年10月11日 01:55    回答数 / 2件

Questioner:  isolutiont  このエントリーをはてなブックマークに追加 

キーワード / カート    テーブル    設計   

個人でショッピングカートを構築しているのですが、行き詰ってしまったため、投稿させていただきました。
ショッピングカートで送料,手数料を計算させたいと思っているのですが、手数料が場合によって
0-5000円の間は315円
5001-10000円の間は420円
10001-15000円の間は525円・・・
という風に複数条件が重なるとき、テーブルの構造として
どのような設計をしたらよいのか、とても悩んでおります。
複数のテーブルにまたがって紐付けしておくしかないのかと思っているのですが、
複数にしてもどの様に設計したらよいのか出てきません。
ZENCARTなどはどのように保存しているのでしょうか?
いろいろと検索したのですが、参考になるサイトが見つからなかったため、
どなたかお分かりになる方、ご教示お願いいたします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01NurseAngelフリーなのだから直接ソース見ればいいだけでは。
┗A02win_phpDBで、 1 5000 315 2 10000 420 3 15000 630

回答一覧

並び替え:

A01
answererNurseAngel [10月11日 23:36] (最終編集:10月11日 23:56)

フリーなのだから直接ソース見ればいいだけでは。


めんどいから見ませんが、今適当に考えてみたがこんなのとか。


送料テーブル
-----------------
|価格上限| 送料 |
-----------------
 5000   315
 10000   420
 15000   525
-----------------

検索時は
select 送料 from 送料テーブル where (購入価格)=<価格上限 order by 価格上限 desc limit 1
とか。


#これだと15001円以上で返り値が空になるのでカラムを価格下限にするなりエラー出すなりが必要になります
#まあそこらへんは適当に

この意見に回答する

ツリーへ TOPへ

A02
answererwin_php [10月13日 04:37] (最終編集:10月13日 04:40)

DBで、


1 5000 315
2 10000 420
3 15000 630

のような手数料の表をつくっておいて、
値が無くなるまで以下のように出力。

if($_SESSION["pay"]<5000){
$_SESSION["daibiki"] = 315;
} else if($_SESSION["pay"]<10000){
$_SESSION["daibiki"] = 420;
} else if($_SESSION["pay"]<15000){
$_SESSION["daibiki"] = 630;
} else if($_SESSION["pay"]<20000){
$_SESSION["daibiki"] = 1050;
}

購入条件で、代引きを選択した場合に出力するものだから、
紐付け云々は支払い方法もDB化するか否か次第ではなでしょうか。

zencartはおなじくめんどいので見てません、知りません。
最近はEC-CUBEのほうがよさげに感じます。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
マジッククォートとmysql_real_escape_string
 このエントリーをはてなブックマークに追加 
A
magic_quotes_gpcでは、SQLインジェクション対処は十分できません。主な理由として、以下が上げられます。 ・magic_quotes_gpcは文字コードを考慮しないで処理するので、Shift_JISを使っている場合、SQLインジェ...

>>続きを読む

SQLインジェクション対策は時と場合で使う関数が変わります。その時にあったものを使いましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)