私のデータベースにはバージョン番号が保存されています。ただし、メジャー.マイナー.ビルド (8.2.0、12.0.1 など) と日付 (YY-MM-DD など) の 2 つの形式があります。私は2つの解決策を考えていました:
+---+---+-----+-----------+ +-----+-----+-----+-----+ +-----+--------+
|...|...|id |versionType| |id |major|minor|build| |id |date |
|---+---+-----+-----------| |-----+-----+-----+-----| |-----+--------|
|...|...|12345|0 | |12345|0 |1 |2 | |21432|12-04-05|
|---+---+-----+-----------| +-----+-----+-----+-----+ +-----+--------+
|...|...|21432|1 |
+---+---+-----+-----------+
また
+---+---+-----+-----+-----+-----+--------+
|...|...|id |major|minor|build|date |
|---+---+-----+-----+-----+-----+--------|
|...|...|12345|0 |1 |2 |null |
|---+---+-----+-----+-----+-----+--------+
|...|...|21432|null |null |null |12-04-05|
+---+---+-----+-----+-----+-----+--------+
これらはどちらも特に効率的ではないようです。最初の例では、バージョン番号を取得するためだけに 2 つのテーブルを結合する必要がありますが、2 番目の例では、最初の例に比べてバージョン エントリごとに 2 倍のスペースが浪費されています。別の方法として、値を列にビット単位で格納し、それをクライアント側で解釈することもできますが、この状況で見落としていた標準的な方法があることを願っています。
リレーショナル データベースの同じ「列」に対して 2 つの異なる種類のデータを格納する適切な方法はありますか?