dポイントプレゼントキャンペーン実施中!

はじめまして。私は今ショッピングサイトを作ろうとしているものです。
データベース、Mysqlのプロフェッショナルに質問したいことがあります。
今作ろうとしているショッピングサイトでは顧客登録機能を付けようと思っています。顧客の主キーはメールアドレスにしようと思っているのですがいいんでしょうか?
もちろん登録するときにメールアドレスが重複していないかのチェックはかけるので重複することはないと思いますがどうなんでしょう?
またメールアドレスは顧客変更で変更される場合もあります。ですから主キーが変わるということになります。(変更時にもプログラムで重複チェックをかけるので重複はしないですが)
それか別にオートインクリメントなどを主キーにするほうがいいでしょうか?
例 オートインクリメント メールアドレス 名前 住所 etc・・・
これなら主キーは一意にできますが知り合いから聞いた話ではオートインクリメントはあまり主キーなどに使わないほうがいいと聞きました。
皆さんならどんな感じのテーブルを作成しますか?

A 回答 (1件)

個人的にはメールアドレスや電話番号を主キーにします。


ミスによる多重登録を防ぐためです。オートインクリメントですと、
主キーでの重複チェックは出来ません。
メールアドレスや電話番号ならチェック不要なのです。もし、既に
登録されていればINSERTでエラーになりますから、予め検索する
必要がありません。オートインクリメントだと、登録前にチェックが
必要なので、DBアクセスが1回余計にかかるし、マルチスレッド
なので、「今見て無いから登録時も無い」とは言えません。
チェック⇒登録の間ロックするのも面倒だし・・・

また、同一人物が複数のメルアドを持っていて、それぞれで登録
しても構わないんじゃないでしょうか。お客に変わりないし、
「信用調査のため名寄せ」なんてことまで考えていなければ特に
問題ないと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やはりメールアドレスを主キーにするのがいいようですね。
セキュリティー的にもこっちのほうがいいみたいですね^^
さっそくこの方法でつくってみます。

お礼日時:2008/11/14 22:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!