私の質問は本当に簡単です:SQLチェック悪いですか?つまり、特にクライアントで実行できるチェックです。チェック制約は悪いですか?
これはおそらくHistoryの中で最も短い質問ですが、それは深刻な問題です。
私の質問は本当に簡単です:SQLチェック悪いですか?つまり、特にクライアントで実行できるチェックです。チェック制約は悪いですか?
これはおそらくHistoryの中で最も短い質問ですが、それは深刻な問題です。
チェック制約は最も確かにではなく、の悪です。
データベースにデータの整合性を維持することです。データの整合性のいくつかの側面は、列に入るデータを検証することによって維持されます。データベースは、これらのチェックのための適切な場所です。
私は実際には反対に論じるでしょう。データ整合性の検証はでなければなりません。アプリケーション層ではありません。一意性など、アプリケーションレベルでは容易に維持できない制約があります。
CHECK CONSTRAINT
を意味しますが、それにはMySQL
というタグが付いていますが、これはサポートされていません。とにかく、check制約は、データを列に挿入する前にビジネス制約を検証することです(例:ageは100未満でなければなりません)。
はい、アプリケーション層で同じ検証を実行し、一度有効にしてからデータをDB層に渡すだけであれば、エンドユーザーに検証メッセージを送信するほうが賢明でしょう。そうすれば、あなたはDBへの往復を節約することができます。
SQLチェックとは何ですか? 「テーブルから選択し、存在していない場合はチェックする」チェックのタイプを参照してください。 – Mjh
@Mjh http://www.w3schools.com/sql/sql_check.asp – Asperger
彼らは悪ではありません。もちろん、エンジンはそれらを強制しないので、[tag:mysql]では純粋に*装飾的です。あなたが信頼できるバックストップを持つ他のデータベースシステムでは、データを変更するためにどのクライアント(または管理ツール)が使用されたとしても、通常、悪ではなく良いものと見なされます。 –