我有玩家实体和游戏实体。

一个与许多游戏关系相关的玩家。

所以玩家具有位置属性


罪行
防御


当我创建一名球员并将该球员添加到球队时,我将位置设定为进攻或防守。

但是对于不同的游戏,玩家可以拥有进攻位置或防守位置,并且该位置不能被团队中的球员覆盖。因此,如果我用位置进攻创造10号球员,则无法修改,因为团队中的每个球员都有适当的位置。但是对于游戏,我们可以根据需要为玩家设置新位置。因此,假设对于ID = 10的游戏,我有ID = 7的玩家,其位置=进攻,但是我希望该玩家ID = 7的玩家对ID = 12的游戏具有位置防御。

对于ID为10的游戏,我们有位置攻击玩家

Game
id = 10
player.id = 7
player.position = offense


对于ID为12的游戏,我们为同一位玩家提供位置防御

Game
id = 12
player.id = 7
player.position = defense


因此,如您所见,我使用不同的游戏,但是使用相同的玩家,并且如果我将新参数设置为player.position,那么我将覆盖之前的值,这是不好的,因为它将仅存储最新位置,并且在我获取玩家时会拥有玩家最后修改的位置。

我想这是另一种方式:

我有玩家实体,因此要在短号游戏中为每个玩家设置不同的位置,我必须复制该实体并设置所需的位置,但是那里的问题是我将复制玩家,这不好,因为更好的使用方法每个游戏具有相同的玩家(一个玩家),并具有另一个对象,该对象将为具体玩家保存具体游戏的参数。

是否有意义?或者,也许我需要另一种方法来解决这个问题。无论如何,我认为最好的方法就是不要重复播放器。

最佳答案

我对这些情况的解决方案应该是这样的

Game
id = 10
player.id = 7
playerSkill.position = offense
playerSkill.idPlayer = 7
playerSkill.speed = 9

Player
id
name
nationality
...

PlayerSkill
position
idPlayer
speed
....


因此,对于每个游戏,您将拥有一个具有其技能的玩家,并且可以为同一玩家创建新游戏并创建新技能

10-06 04:27
查看更多