2

ソーシャル ゲームのプロトタイプを開発しています。ストレージ エンジンとして mongodb を使用しています。mongo コレクションに関連付けられたタイル (状態/タイプなど) を含むマップ タイルを格納するのが良い方法であるかどうか疑問に思っています。

マップ: { 0: { タイプ: 草, 状態: 収穫, last_action_date: 2012-01-12 } 1: { ... } .... 44: { ...} }

多分フラットファイルの方が良いでしょうか?mongo のようなデータベースにタイル マップを保存するベスト プラクティスがわかりません。

そうすれば、1 つの要求、すべてのマップ タイル、およびタイルに関連付けられたすべての州を取得できます (各タイルには、タイルの X/Y 座標を決定できる番号が付けられます)。

誰かがmongodbでこの種のシステムを使用していますか?

ありがとうございました!

4

1 に答える 1

3

Mongo でのデータの構造は、そのデータの書き込み、アクセス、および/または変更の方法によって決定する必要があります。おそらく、マップ全体をサブドキュメントの double 配列として 1 つのドキュメントに入れることは理にかなっています (小さなマップの場合にのみ実用的です)。おそらく、マップの各タイルを 1 つのドキュメントとして保存する方が理にかなっています (これは可能性が高いようです)。

タイルを個別のドキュメントとして保存する場合は、"map: 'map1'" のような共通キーを与えて、マップ全体を一度にプルできるようにします。一方、タイルを個別のドキュメントとして保存することの利点は、マップ全体を一度に読み込む必要がないことです。代わりに、各タイルに「map1」のような共通キーを与え (同じコレクションに複数のマップを格納できるように)、x 座標と y 座標を含め (2 次元空間を想定)、これら 3 つのフィールドに一意のインデックスを作成します。これにより、いつでも作業する必要があるタイルのみをすばやく効率的に引き出し、現在の計算やプレゼンテーションに必要のないタイルをメモリから削除できます。

于 2012-07-24T17:57:59.417 に答える