我有玩家实体和游戏实体。
一个与许多游戏关系相关的玩家。
所以玩家具有位置属性
罪行
防御
当我创建一名球员并将该球员添加到球队时,我将位置设定为进攻或防守。
但是对于不同的游戏,玩家可以拥有进攻位置或防守位置,并且该位置不能被团队中的球员覆盖。因此,如果我用位置进攻创造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
....
因此,对于每个游戏,您将拥有一个具有其技能的玩家,并且可以为同一玩家创建新游戏并创建新技能