- ベストアンサー
emailの一意性について教えてください
よろしくお願いします。 会員情報登録時などで、emailを入力させる場合、一意にすべきでしょうか? 私はuniqueにしたいのですが、phpの書籍を10冊近く読んできましたが、emailを一意に するようなコーディングをしている例はなく、emailについては一意性の制限はまったくかけていない例ばかりでした。 実際、一意でバリデートするとなにか問題があるのでしょうか? アドバイスをお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>必須入力項目でないEmailでも重複はまずいのではないのでしょうか? まずくないですね >2人の人が同じアドレスを書いていて、一方と何かしらのコンタクトを >とらなければならない状況になった場合に誤ってemailをつかってしまうと、 >違う人にもメールが届いてしまうとか、 それは精度の問題ですね。 一つは空メールをおくらせて登録するとか 確認メールを送りそこからワンタイムパスワードで登録を完了させる などでメールアドレスは整合性をとることができます そういった確認作業をしなければユーザーが適当に書いたEmailアドレス なんかただの飾りですから、「何かしらのコンタクト」をとる手段としては 不適格です。 >同じ人が期間を開けて異なるidで間違って登録して同じemailアドレスを >登録した場合にも後でemailで連絡をとる状況が出てきた場合にその人に >複数通同じメールが届いてしまうとか。 同じ人が登録するのであればユニーク属性をつけて、はじくなり 上書きするなりすれば十分要件は満たすことができます
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
一意にする意味は、それを使って排他的な処理をするということです たとえばログインのユーザー名にemailを使う場合などは unique属性が必要になるでしょう。 逆にemailが必須入力項目ではない場合などはuniqueを指定すると 未入力にすることができないくなるため賢明ではありません
補足
しかし、必須入力項目でないEmailでも重複はまずいのではないのでしょうか? 2人の人が同じアドレスを書いていて、一方と何かしらのコンタクトをとらなければならない状況になった場合に誤ってemailをつかってしまうと、違う人にもメールが届いてしまうとか、同じ人が期間を開けて異なるidで間違って登録して同じemailアドレスを登録した場合にも後でemailで連絡をとる状況が出てきた場合にその人に複数通同じメールが届いてしまうとか。 必須入力項目でないEmailで、かつ排他性が必要ない場合ってあるのでしょうか?教えて下さい。よろしくお願いします。