ほぼ3次元の要件のように見えるテーブルを設計する必要があります。
例えば、
- 恐竜には「無限の」種類があります。
- すべての恐竜には、いくつかの共通の機能セット(名前、地球上に存在してからの年数、体重、家系の名前など)があります。
- それぞれの品種とは関係のない特定の機能がいくつかあります。このような各機能は、「name」="value"ペアで識別されます。「名前」は機能の名前のようなもの(頭の角、音声周波数など)であり、「値」は機能の値(頭の3つの角、10Hzの音声周波数など)のようなものです。 。、)。
要件に従って、cid、名前、存在からの年数、重みなどを参照する列などの一般的な機能を備えたテーブルXを作成できます。また、列(uid、name、value)のみを持つ別のテーブルYが存在する可能性があり、ここでcidをバインドしてuidに使用できます。
しかし、Xの行数は膨大になるという事実(1兆以上、恐竜の家族はそれほど多くないかもしれませんが、それは単なる例です)。同様に、name = valueは、テーブルXのエントリごとに数百になります。これにより、テーブルYの行数が増加します。
フィーチャの「名前」も「無限」であるため、動的な列のようになるため、残念ながら、フィーチャごとの列のように、列の数が固定されたテーブルを作成することはできません。
1つのアイデアは、テーブルXにさらに2つの列を含めることです。ここで、1つの列はコンマ区切りのすべての機能(「名前」)で構成でき、もう1つの列はコンマ区切りのすべての「値」で構成できます。しかし、これは非常に悪い設計であることを私は知っています。
この要件に対してより良い解決策はありますか?