2

ゲームのキャラクターがどの地域にいて、どのようにそこにたどり着いたかについての詳細を保存するデータベースを作成する必要があります。文字 UUID を binary(16) インデックスとして、地域名を varchar(25) として、UNIX 時間を int として保存する予定です。他の分野はまだ完全に決定されていません。

また、ユーザーがこれまでに訪れたすべての地域の全履歴と同じ詳細を保存する必要もあります。

このシステムは、キャラクターが地域間を移動する際に、多くのソース (少なくとも 100 件) からの受信データを同時に処理します。

ほとんどのクエリは、キャラクターに関連することのみを知りたいと考えていますが、特定の地域で最後にアップロードされたエージェントを知りたい場合もあります。この情報を別のテーブルに保存するつもりです。

アソシエイトは、地域ごとにテーブルを使用する方が効率的だと考えていますが、これが通常行われているとは思わないので心配です。

基本的に、私の場合、彼が言ったように、地域ごとに別々のテーブルを使用する方が効率的かどうかを知りたいです。

4

2 に答える 2

3

1 つのテーブルを使用します。リージョンごとに 1 つ持つということは、今後の拡張では新しいテーブルが必要になることを意味し、その結果、より多くのコーディングが必要になります。エンティティ タイプごとに 1 つのテーブルを使用すると、データベースに行を挿入または削除するだけで、多くの領域を追加および削除できます。

于 2011-06-23T00:45:49.257 に答える
0

地域ごとにテーブルを作成する方が効率的かもしれませんが、設計と実装の面で頭痛の種になります。

現在、すべてのリージョンについて、外部キー (リージョンの ID) を使用するだけでなく、参照しているテーブル名をエンコードする必要があります。同様に、後で追加することを決定したすべての領域 (拡張など) について、新しいコードと、基本的に同一の操作と対話するための新しいテーブルの両方を追加する必要があります。

それがボトルネックであると判断した場合にのみ、これを行います。この規模で事前に最適化することは、通常は間違いです。結局のところ、正規化された適切な設計を採用して、もう少しドメイン固有のものにするのは簡単ですが、その逆を行うのは困難です。

于 2011-06-23T00:50:37.013 に答える