0

いくつかの日付を格納するタイプのフィールドを持つ MySQL のテーブルがあり、年のみを格納するDATEタイプのフィールドを持つ別のテーブルがあります。SMALLINT

ここで、単に不明な日付 (または年) と、まだ発生していない日付 (または年) を区別する必要があります。不明な値が であることは非常に簡単ですNULL。しかし、私が言及したタイプでまだ発生していない日付を格納するために使用する値に関する推奨事項はありますか?

1000年より前の日付/年が使用されることはないと確信しているので、たとえば0000-01-01. より良い/推奨される解決策はありますか?

EDITDATE「サポートされている範囲は '1000-01-01' から '9999-12-31' です」というタイプについては、それを読んでください。したがって、1000-01-01の代わりに使用する必要があり0000-01-01ます。

4

1 に答える 1

2

1 つの列を使用して 2 つの別々のビットのデータを格納しようとしているようです。誰かが死んでいるか生きているか (実質的にはステータス フィールド) と、彼らが亡くなった日付は別の情報です。そのため、別々に保管することをお勧めします。誰かが生きているか死んでいるかにかかわらず、死亡日が不明な場合、いずれの場合も死亡日は NULL です。彼らが死んでいるかどうかを判断するために日付フィールドを使用することはありません。したがって、生きているかどうかを格納する TINYINT (または BOOL) 列と、死亡日を表す NULL 可能な DATE フィールドを提案します。

于 2012-05-06T12:39:51.043 に答える