2

シンプルなゲームを作ろうと思っています。2D グリッドのプレイボードがあり、プレイヤーはグリッド内のノードにトークンを配置できます。

基本的に、このようなタプルを保存できます{x, y, token}

グリッドの一部を表示する UI をレンダリングする場合、データを収集するために空間クエリが必要になると思います。スクロールすると、同様のクエリが予想されます。プレイヤーの数によっては、グリッドが巨大になる可能性がありますが、現実的には、リレーショナル データベースが快適に処理できる範囲を超えて拡大するとは考えていません。

Spatial Databasesを調べていましたが、それが解決するよりも多くの問題を追加するかどうかはわかりません。これについてどのような方法がありますか?空間データベースを使用する必要がありますか? その場合、この (単純な) 問題に最も適しているのはどれですか?

4

1 に答える 1

2

空間インデックスは、従来の (1 次元) インデックスに比べて大きなメリットをもたらします。のようなクエリ

x BETWEEN a AND b AND y BETWEEN c AND d

xまたはのいずれかのインデックスを使用できるようになりますy。これは、DBMS が ab ストライプ (列) の外側のレコードを除外できることを意味しますが、その内側のすべてのレコードについては、y値を細かく処理する必要があります。( x のカーディナリティは潜在的に無制限であるため、 xandの複合インデックスがあるかどうかは問題ではありません)。y

空間インデックスは 2 つのディメンションを同時に処理できるため、ほとんどの DB が除外されます。間隔と交差するいくつかのグリッド単位で個々の値をテストするだけで済みます。

于 2013-12-05T09:39:36.163 に答える