下の画像は私がこれまでに持っていたものです。
デザイン
エミッタ テーブル
エミッターには、場所 (x と y に関して)、ID、レベル、およびこの情報が最後に更新された日時などの独自のプロパティがあります。さらに重要なことに、エミッターはどのクランメンバーでも防御できます。エミッターは、そのクランのメンバーによってのみ防御できます。1 つのエミッターを複数のプレイヤーが防御できます。
プレイヤーズテーブル
というかクランメンバー。このテーブルには、特にプレーヤーに関する情報が含まれています。これには、x と y に関する位置情報と、そのプレーヤーに関するその他の情報も含まれています。(おそらくここにも lastupdated を追加します) 1 人のプレイヤーが複数のエミッターを防御できます。
Emitter_Player 結合テーブル
このテーブルには、emitter_player の組み合わせが 1 つ含まれています。(そのような関係が 1 つ存在する場合) まず、これがエミッターとプレーヤーの間の適切な関係であるかどうかを尋ねさせてください。私はそれが多対多になると考えました。さて、私はこれを自分で簡単に行うことができ、この結合テーブルに防御ポイントを追加するだけです (私が本当に気にかけているのは、特定のエミッターでプレイヤーがどれだけの「防御」を持っているかです)。これも正しいことですか? ただし、「最初から正しく実行」し、プレイヤーがこのエミッターを防御している特定の各ユニットに関する情報を追加したいと思います。
単位表
このテーブルには、ゲーム内のすべてのユニットに関する情報が含まれています。このテーブルには、ユニット ID と、関連する防御値と攻撃値が含まれています。このテーブルが挿入されることはめったになく、挿入された場合 (新しいユニットがゲームに追加された場合) は手動で更新されます。
問題
デザインの修正
エミッターには、プレイヤーの外部にユニットは含まれません。プレーヤーは、エミッター内のすべてのユニットの所有者でなければなりません。したがって、エミッターとユニットの間に関係はありません。また、プレイヤーはエミッターの外側にユニットを持っている可能性がありますが、この例は気にしません。エミッターにあるユニットだけを気にします。したがって、Emitter_Player 結合テーブルと Units テーブルの間に多対多の関係があると考えました。この背後にある私の推論は、Emitter_Player の組み合わせは簡単に多くの異なるタイプのユニットを持つことができ、1 つのタイプのユニットが多くの異なる Emitter_Player の組み合わせに含まれる可能性があるということです。
情報の挿入
結合テーブルが 2 つあるため、このデータベースに情報を挿入する方法について非常に混乱しています。
情報の照会
繰り返しになりますが、このデータベースから情報にアクセスする方法が非常にわかりません。
目標
グラフ
最終的には、(プレーヤーとエミッターの両方から) 時間の経過に伴う進行状況を示すグラフを作成したいと考えています。これをどのように照会するかはわかりません。
毎週の変更
プレイヤーが先週から進歩したか、進歩を失ったかをお知らせしたいと思います。(そしてこの場合、レビューのためにフラグを立てます)
結論
できる限り詳しく書いてみましたが、他に情報が必要な場合はお知らせください。私はこれをすぐに終わらせたいと思っていますが、それ以上のアイデアは本当に完全に失われています.