数据库建模“对象”之间的关系

时间:2012-07-26 00:58:15

标签: database object modeling relationships

我想建模,分析和创建一个由纸牌游戏信息组成的数据库。每轮游戏都有一个ID,时间戳和4个或更多玩家(通常是4个)。我已经使用其属性集定义了我的播放器表。但是,由于每轮都有4名球员, 如何有效地实现轮次与球员之间的关系?

基本上每轮都有4个不同的玩家,具有相同的属性(具有不同的值)。为每个玩家设置一个属性(列)似乎很奇怪,因为我希望有一些链接到一个玩家表来保持我的'对象'独立和封装。 这是一轮与4名球员之间的一对多关系吗?

当我在纸上绘制模型时,它似乎更像是一个层次结构。例如,我有一个拥有 4个玩家的回合,而每个玩家拥有一手牌。 这是关系模型,层次模型,对象模型还是其他什么?

此外, 可以在SQL中完成吗?如果不是我应该使用什么? 任何帮助/建议都非常受欢迎,因为我所有的经验都是使用SQL中的关系数据库。

谢谢!

1 个答案:

答案 0 :(得分:1)

基本上

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

round_id player_id others_attri       player_id info_attributes

然后,对于每一轮,你需要在Round中存储4行,具有相同的id和每个玩家ID,例如,Round为id,其中玩家1,2,3,4在其中。

   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