2011-11-07 21 views
1

こんにちは私はmysqlへのアクセスを移動し始めましたが、制約があるかどうか、私はnullでなく、まだ空の値を持つことができるように使うことができますか?それは私がちょうど空のフィールドに記入してからでないnullに列を変更しますた場合nullとnot null mysql

これは、私自身のデータベースではありません。

+8

フィールドをnullableからnot-nullに切り替えると、MySQLのデフォルト値が自動的に入力されます。しかし逆は真実ではありません。 nullでないnullableへの切り替えは、デフォルト値のフィールドをnullに変更しません。 –

答えて

1

はい、ヌルを使用せずに欠落した情報をモデル化する方法はさまざまです。

不足を表す値を選択できます。それはgenrealizeするのは非常に難しいのでここにいくつかの例があります。期限なし(開始済みで進行中で、まだ終了していない)のend_date属性の場合は、9999-12-31などの未来の日付を使用します。 person_middle_name attributteの場合、Joe Celkoはメタデータの値を二重中括弧で置き換えることを提案しています。 {{NK}} for 'not known'、{{NA}} for 'not applicable'など

欠落した情報をモデリングするためのやや直感的なアプローチは、テーブルに行がないことによるものです。従業員が非準拠の場合は、Payrollテーブルに行を追加しないで、Payrollテーブルのsalary_amountで表される給与を現在受け取っていない給与従業員と区別します。

さらなるアプローチは、テーブル内の行の存在によるものです。 SalariedUnsalariedおよびSalaryUnknownのテーブルを作成し、すべての従業員がこれらのテーブルの1つに1つの行を持つようにすることができます(トリガーやプロシージャを使用してMySQLで実行される可能性があります)。