2000行のMySQLテーブル(Table1)があり、各行には3dオブジェクトのデータ(サイズ、場所、名前など
)が格納されています。2番目のテーブル(Table2)には、Table1にリストされている3dオブジェクトのプロパティのリストが含まれています。すべてのオブジェクトは、このテーブルに複数のエントリを持つことも、何も持たないこともできます。この特定のケースでは、10.000のエントリがあるとしましょう。ここに難しい部分があります:距離を与えるすべてのTable2エントリの間に組み合わせがあります。したがって、次のような3番目のテーブル(Table3)があります。
row1: table2_entry1 table2_entry2 result
row2: table2_entry1 table2_entry3 result
....
rowN: table2_entry1 table2_entryN result
rowN+1: table2_entry2 table2_entry1 result
rowN+2: table2_entry2 table2_entry3 result
....
rowN+N: table2_entry2 table2_entryN result
....
....
rowN+N+...+N: table2_entryN table2_entryN-1 result
したがって、Table3には10.000.000のエントリがあります。(entry1、entry2、same_result)と(entry2、entry1、same_result)のペアがあるため、行列を使用すると半分にカットされます。
mongoDBドキュメントは次のようになります(例:entry1)
{
"_id": ObjectID("..."),
"location": "some_file_location",
...
"media_properties": {
{entry2: result,
entry3: result,
...
entryN: result,
}
}
したがって、「media_properties」には、Table2に格納されている10.000プロパティごとに9.999ディクショナリペアがあります。
これが私の膨大な数の組み合わせを保存するための最良のアプローチであるとは確信していません。
SQLテーブルのようにすべての組み合わせを保存するために別のコレクションを使用する必要がありますか、それとも(上記の例のように)メディアドキュメントに辞書を埋め込む必要がありますか?
オーバーヘッドを取り除き、同じ情報を2回保存したくない。この場合、私は次のようなものを持つことができます:
entry1 - entry2 - result
entry2 - entry3 - result
等
それ以外の:
entry1 - entry2 - result
entry2 - entry1 - result
entry2 - entry3 - result
entry3 - entry2 - result
等
マトリックスの半分をmongoDBドキュメントに「マッピング」することは可能ですか?
これを保存するためのより良い解決策はありますか?
どんなアイデアでも大歓迎です!
前もって感謝します。