MySQL データベースのテーブルには、電子メール アドレスの列があります。最終的に、電子メール アドレスは一意であり、有効な形式である必要があります。チェックをどこで行うべきか、どのチェックが必要かを判断するのに苦労しています。
明らかに、SQL だけでは電子メール アドレスを完全に検証することはできませんがNOT NULL
、空白の電子メール アドレスが送信されないように制約を追加することを検討していました。各電子メール アドレスは一意でなければならないe-mail
ため、列を一意のキーにすることは合理的に思えますが、列が一意のキーであるという理由だけではNOT NULL
正しくないのでしょうか? 私はおそらく PHP を使用してサーバー上の電子メール アドレスを検証する予定なので、そこで空かどうかを確認することもできます。
私が作成している重要な情報は、一意のキーまたは制約を追加すると検索が速くなったり遅くなったりすることですか?
重複や空の文字列/nullなどがあってはならない電子メールアドレスを保持する列の場合、一意のキーにするか、NOT NULL
制約などを与える必要がありますか?
私は MySQL の初心者なので、コード サンプルが役に立ちます。作業が簡単な場合は、phpMyAdmin があります。
私が使用する一意のALTER TABLE USER ADD UNIQUE INDEX(``e-mail``);
場合、nullでない場合に使用しますALTER TABLE user CHANGE ``e-mail`` varchar(254) NOT NULL;
もう 1 つのアイデアは、空の電子メール アドレスを含む行を挿入し、電子メール列を一意にして、他の空の電子メール アドレスを挿入できないようにすることでした。