質問
開発者がすべての null 列にデフォルト値を指定することを要求するポリシーを作成することにメリットはありますか?
解決
はい、 一貫性
全員が同じ認識を保つことが重要であり、これにより、開発者が本番環境で予期しない値を取得することがなくなります。
素晴らしいアイデアだと思います。
他のヒント
あなたがすべてNULLの列のDEFAULT値が必要な場合は、あなたがそれらを作ることができ、すべてのNOT NULL!
のNULLは、多くの場合、彼らが関与する3つの値ロジックによる混乱の元、です。たとえば、クエリ...
select * from employee where job != 'MANAGER'
...管理職でないすべての従業員を返すことが期待されるかもしれません。 JOBがnullにできるかどうかしかし、もちろん、このクエリは、JOB nullである従業員を返しません。
これはデフォルト値の政策の理論的根拠である可能性があります。
デフォルト値を割り当てることにより、唯一の問題をシフトこれらの "特別な値" ます。
@TonyAndrewsます:
...管理職でないすべての従業員を返すことが期待されるかもしれません。 JOBがnullにできるかどうかしかし、もちろん、このクエリは、JOB nullである従業員を返しません。これはデフォルト値の政策の理論的根拠である可能性があります....
NULLは、欠損値を処理するために考案されたクエリのように仕事のフィールドにNULL値を持つ行を返さないようにその完全に合理的! あなたは仕事のは、「マネージャー」ではない行を返すようにDBMSを求めています。それは手段が私そのジョブは不明であるそれらを返しません。あなたにも不足している仕事をしたい場合は、別の質問のthatsます。
ちょうど想像し、いくつかの管理者は、自分の仕事のフィールドは(まだ入力されていない、欠落している)NULLですので、データベースがそれらを返す場合、クエリの結果は絶対に間違っていると思われるがあることがあります!
フィールドはフィールドだけで、デフォルトで、それは、NOT NULLにする値が欠落していない(または常にデフォルト値を必要とする)していないそうでない場合、値が欠落した場合にはNULLを持つ必要がありますNULLを許可されている場合は、バックメインの質問に来て、私は思います値。これは、特定の条件でのビジネスロジックに基づいています。