nullこんにちは、mysql へのアクセスの移動を開始しましたが、列を作成せずに空の値を保持できるようにするために使用できる制約または何かがあるかどうか疑問に思っていましたか?
これは私自身のデータベースではありません。もしそうなら、空のフィールドに入力してから、列を not に変更しますnull。
はい、null を使用せずに不足している情報をモデル化するためのさまざまなアプローチがあります。
欠落を表す値を選択できます。ジャンル化するのは非常に難しいので、ここにいくつかの例を示します。end_date期間が限定されていない (つまり、開始されているが進行中であり、まだ終了していない) 属性の場合は、 のような遠い未来の日付を使用し ます9999-12-31。person_middle_name属性の場合、Joe Celko は、{{NK}}「不明」、{{NA}}「該当なし」などのメタデータ値を二重中括弧で囲むことを提案しています。
欠落している情報をモデル化するもう 1 つの直観的なアプローチは、テーブルに行がないことです。従業員が無給の場合、テーブルにその従業員の行を追加しないでPayrollください。これにより、現在給与を受け取っていないサラリーマンとは区別さsalary_amountれ、テーブル内のゼロで表されPayrollます。
さらに別の方法として、テーブル内に行を存在させる方法があります。のテーブルを作成しSalaried、すべての従業員がこれらのテーブルの 1 つに 1 つの行を持つようにすることができます(おそらく、トリガーやプロシージャを使用して MySQL で強制されます)。UnsalariedSalaryUnknown