0

カードゲームの情報からなるデータベースをモデル化し、分析し、作成したいと思います。ゲームの各ラウンドには、ID、タイムスタンプ、および4人以上のプレーヤー(通常は4人)が含まれます。属性のセットを使用してプレーヤーテーブルを定義しました。ただし、各ラウンドには4人のプレーヤーがいるので、ラウンドとプレーヤーの関係を効率的に実装するにはどうすればよいですか?

基本的に、各ラウンドには、同じ属性(異なる値)を持つ4人の異なるプレーヤーがいます。「オブジェクト」を独立させてカプセル化するために、プレーヤーテーブルへの何らかのリンクが必要なため、プレーヤーごとに1つの属性(列)があるのは奇妙に思えます。これは、ラウンドと4人のプレーヤーの間の1対多の関係ですか?

モデルを紙に描くと、階層のように見えます。たとえば、4人のプレーヤーがいるラウンドがあり、各プレーヤーには1枚のカードがあります。これは、リレーショナルモデル、階層モデル、オブジェクトモデル、またはその他のものですか?

また、これはSQLで実行できますか?そうでない場合、私は何を使うべきですか? 私の経験はすべてSQLのリレーショナルデータベースに関するものなので、ヘルプや提案は大歓迎です。

ありがとう!

4

1 に答える 1

1

基本的

   Round                                       Player
------------                              -----------------

round_id player_id others_attri       player_id info_attributes

次に、ラウンドごとに、同じ id と各プレーヤー id を持つラウンドに 4 行のストレージが必要です。たとえば、プレーヤー 1、2、3、4 がいる id 1 のラウンドです。

   Round               Player
-----------          -----------
1  1  date                1
1  2  date                2
1  3  date                3
1  4  date                4

player_id は、player_id への外部キーです。

または、保存日付が何度も必要ない場合は、次のようにします。

Round                      player_play                      Player
---------                   ------------                -----------------

round_id info_attributes  round_id player_id        player_id info_attributes



Round           player_play              Player
-------         -----------          -----------
1 date           1  1                  1
                 1  2                  2
                 1  3                  3
                 1  4                  4
于 2012-07-26T01:22:34.860 に答える