2011-06-23 8 views
2

ゲームキャラクターがどの地域にいるのか、どのようにそこに行ったのかの詳細を格納するデータベースを作成する必要があります。 文字UUIDをバイナリ(16)インデックス、リージョン名をvarchar(25)、unix時間をintとして格納する予定です。他の分野はまだ完全には決定されていない。私の目的のために、多くのテーブルが効率的なデータベース設計ですか?

私はまた、ユーザーはこれまでと同じ詳細と共にになっているすべての領域の全履歴を保存する必要があります。

文字が領域間を移動するように、このシステムは、(少なくとも百)は、同時に多くのソースから入ってくるデータを扱うであろう。

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

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

基本的に私が知りたいことは、私の場合は、彼が言いましたように効率的であるかどうかを知りたいし、すべての地域で別々のテーブルを使用しています。

答えて

3

1つのテーブルを使用すると、1つの領域で1つのテーブルを展開すると、トラックの下に新しいテーブルが必要になるため、より多くのコーディングが必要になります。エンティティタイプごとに1つのテーブルを使用すると、データベースに行を挿入または削除するだけで、多くの領域を追加および削除できます。

0

すべての領域のテーブルを作成する方が効率的かもしれませんが、設計と実装の面で頭痛を引き起こします。

すべての地域で、外部キー(地域のID)を使用するのではなく、参照するテーブル名をエンコードする必要があります。同様に、後で追加することに決めたすべての領域(拡張など)では、基本的に同じ操作を行うために新しいコードと新しいテーブルの両方を追加する必要があります。あなたはそれがボトルネックになっていると判断した場合

私はこれを行うだろう。このスケールで事前に最適化するのは一般的に間違いです。結局のところ、良い、標準化されたデザインを取って、少しだけドメイン特有にするのは簡単ですが、その逆を行うことは難しいです。

関連する問題