1

標準的な都市建設ゲームを考えてみてください。都市があり、各都市にはユニットがあり、各ユニットにはギア (装備されている) があり、都市自体にはさらに多くのギアがあります (装備されていない、どこかのボックスに入っています)。

A) まず、3つのコレクションを作ることを考えました。

Cities: {_id, name, locationX, locationY}
Units: {_id, name, city_id, unitType}
Items: {_id, name, itemType, unitEquipped} where unitEquipped was optional( item belonged to the city).

B)それから私はそれを次のように変えました:

Cities: {_id, name, locationX, locationY}
Units: {_id, units:[ {name, city_id, unitTye}, {name, city_id, unitTye}... ]}
Items: {_id, items: [ {name, itemType, unitEquipped}, {name, itemType, unitEquipped}... ]}

C) 最後に、これは 1 つのコレクションです。

Cities:
{
_id, name, locationX, locationY,
units: [ {name, unitTye}, {name, unitTye}... ],
items: [ {name, itemType, unitEquipped}, {name, itemType, unitEquipped}... ]
}

必要がないため、ユニットに city_id が含まれていないことに注意してください。これら3つのスタイルの長所と短所を教えてもらえますか? 最後のデータは冗長性が最も低いと思いますが、locationX が必要な場合は、そのドキュメントの他の情報を処理する必要がありますよね?

4

0 に答える 0