0

私はゲームを作成しており、InnoDB エンジンで実行されている SQL データベースで使用する基礎となるデータモデルを考える必要があります。

主なエンティティは、アカウント、スロット、およびキャラクターになります。すべてのアカウントには、最小で 1 つのスロットがあり、場合によってはそれ以上のスロットがあります。また、各スロットには 1 つの文字を保持できますが、常に文字があるとは限りません。

詳しくは:

  • プレイヤーはアカウントを使用してゲームにログインします。
  • 時間が経つにつれて、1 つのスロットから始めて、より多くの (キャラクター スロット) が得られます。
  • すべてのスロットに、ある時点で死ぬ可能性のあるキャラクターを配置できます。キャラクターがまだ配置されていないか、キャラクターが死んでいる場合、その時点でスロットは空になります。
  • プレイヤーは、メイン アカウントでログインしている間、キャラクターを個別に操作できます。

関係のない構造:

  • アカウント (accountId、...アカウント データ)
  • スロット (accountId、slotId、...スロット データ)
  • 文字 (characterId、...文字データ)

単純な関係:

  • account_slots (accountId、slotId)
  • slot_characters (accountId、slotId、characterId)

ノート:

  • accountId はアカウントの一意のキーになります。
  • slotId はスロットの一意のキーではなく、最大 1.. の数字になりますが、(accountId, slotId) は一意になります。
  • characterId は文字の一意のキーになります。

まだ微調整する必要はありませんが、これは正しいモデルだと思いますか?

テーブルに列を追加することでリレーションを取得できる場合は、できるだけ少ないリレーションでテーブル間に正しいリレーションを追加したいと考えています。

よろしく。

4

0 に答える 0