Firebirdの電子メールフィールドに有効なチェック制約を設定する方法(フィールド値がnullでない場合)?Firebirdの電子メールフィールドに効率的なチェック制約を設定する方法
おかげで、ウィルフリード
Firebirdの電子メールフィールドに有効なチェック制約を設定する方法(フィールド値がnullでない場合)?Firebirdの電子メールフィールドに効率的なチェック制約を設定する方法
おかげで、ウィルフリード
あなたは検証のこの種は、アプリケーションコードではなく、中に行われるべきで、正規表現パターンに対してテストする
CHECK(emailfield SIMILAR TO '[[:ALNUM:]._%+-][email protected][[:ALNUM:].-]+\.[[:ALPHA:]]+')
私見のようなものをSIMILAR TO演算子を使用することができますデータベース。とにかく、正規表現による提案のアプローチは素晴らしいようです!
ありがとう、私は別の場所で見つけたアドバイスに従って、例外的なケースで問題を避けるために電子メールアドレスの基本的な要素をチェックするしかなかったので、 '_%@_%._%'のようにVALUEを使用します。 –
+1ユーザー入力はビジネスアプリケーションロジックによって検証される必要があります。データベースはデータのみを管理し、ビジネスロジックを適用する必要があります。データベースを「データバリデーター」として使用するのは良いことではありません。 – morde
検証は両方の場所にある必要があります。あなたのDB(太いデータベースのコンセプト)を保護するためのデータベースと、ビジネスロジックの優れたユーザーエクスペリエンス – Julian50
非常に近いですが、foo @ bar..comも一致しますが、有効なメールアドレスではありません。 foo。@ bar.comも無効で、まだ一致しています。 –
はい、私が与えたパターンは完璧ではないでしょう。おそらく、「何かのようなもの」よりもはっきりと綴っていたはずです。完璧なパターンはあまりにも複雑すぎてここには載せられません。基本的な考え方を示したかっただけです。 – ain
電子メールアドレスの唯一の真の妥当性確認は確認メッセージを送信しています:)私は通常、完全に有効な電子メールアドレスが拒否されたときに怒っています。 –