開発者がすべての null 列にデフォルト値を指定することを要求するポリシーを作成するメリットはありますか?
5 に答える
nullは、3値論理が関係しているため、混乱の原因となることがよくあります。たとえば、クエリ...
select * from employee where job != 'MANAGER'
...マネージャーではないすべての従業員を返すことが期待される場合があります。ただし、もちろん、JOBがnullになる可能性がある場合、このクエリはJOBがnullである従業員を返しません。
これがデフォルト値ポリシーの背後にある理論的根拠である可能性があります。
基本的にこれらのデフォルト値はnullと同じ「意味」を持っているため、デフォルト値を割り当てると問題がシフトするだけです。価値」。
はい、誰もが同じページに一貫性
を保つことが重要です。これにより、開発者が本番環境で予期しない値を取得しないことが保証されます.
素晴らしいアイデアだと思います。
@TonyAndrews:
... マネージャー以外のすべての従業員を返すことが期待される場合があります。ただし、もちろん、JOB が null である可能性がある場合、このクエリは JOB が null である従業員を返しません。これがデフォルト値ポリシーの背後にある理論的根拠である可能性があります....
NULL は欠損値を処理するために発明されたので、クエリの場合、ジョブ フィールドに null 値を持つ行を返さないことは完全に合理的です! ジョブが「マネージャー」ではない行を返すように DBMS に要求しています。仕事が不明な人を私に返さないという意味です。あなたも仕事を失いたいのなら、それは別の質問です.
ジョブ フィールドが NULL (欠落している、まだ入力されていない) であるマネージャーがいると想像してみてください。したがって、データベースがそれらを返した場合、クエリの結果は完全に間違っています。
主な質問に戻ると、フィールドが NULL を許可されている場合、値が欠落している場合は NULL を持つ必要があると思います。これは、特定の条件でのビジネス ロジックに基づいています。