データベースで新しいフィールドを作成する際、4DではNULL値を空値にマッピングするかどうかを選択することができます。4D v19 R4から、新しいプロジェクトでは、4DはデフォルトでNULL値を空値にマッピングすることはなくなりました。
簡単に歴史を振り返ると、4D の古いバージョン(4D v11 が登場する以前)は、NULL をサポートしていませんでした。データベースでも言語でもありません。
4D v11 以降、データベースは NULL をサポートし、4D の SQL 言語もサポートしますが、4D 言語はサポートしません。この正確な理由から、デフォルトでは、新しく作成されたフィールドに対して、”NULL値を空白値にマップする “というオプションがあらかじめ選択されていました。これによって、4D言語でのコーディングが非常に簡単になりました。
現代に話を戻すと、ORDAの場合は話が別です。ORDAはNULLを完全に認識しており、NULLの概念を使うことでコードに多くの可能性が生まれます。
NULLは存在しないデータをマークするために使用されます。NULL を空の値に対応させると論理的に見えるかもしれませんが、実際は違います。たとえば、ユーザーが 0 を入力した場合と、何も入力しなかった場合では、大きな違いがあります。NULLは、何も値が入力されなかったことを示します。
ORDAはNULL値で動作するように設計されています。例えば、.count ()関数は、NULLでない値を持つエンティティ選択内のエンティティの数を返します。ORDAでは、NULLのサポートを維持することで、空の値へのマッピングを避ける方がはるかに良い方法です。
例えば、顧客が説明文に携帯電話番号を入力した数を数える必要がある場合、テーブルの「mobile」フィールドがNULL値をサポートしていれば、そのまま記述します。
$count:=ds.Users.all().count("mobile")
NULL 値を空値にマッピングする必要がある場合は、フィールドのプロパティにあるNULL 値を空値にマッピング するオプションを使用します。
ORDAが4Dで作業する標準的な方法になったので、このオプションのデフォルト値を変更する時期に来ています。4D v19 R4でプロジェクトを開始すると、新しく作成されたフィールドには、このオプションがデフォルトで設定されなくなります – もちろん、必要であれば、まだ有効にできます