我有玩家實體和遊戲實體。在CoreData中建立關係
一個玩家到很多遊戲關係。
所以玩家有位置屬性
- 進攻
- 防禦
當我創建的球員,該球員加入到我設置的位置進攻還是防守球隊。
但是對於不同的遊戲,玩家可以擁有進攻位置或防守位置,並且該位置不能被球隊中的球員覆蓋。所以如果我創造了位置進攻的第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我會覆蓋previ這個價值並不好,因爲它會存儲最新的位置,當我獲得玩家時,我將擁有最後修改位置的玩家。
我想使這是在接下來的方式:
我的球員的實體,所以做出對短號遊戲中每個玩家不同的位置,我需要複製這個實體,並設置我想要的位置,但問題那就是我會重複玩家,並且它不好,因爲更好的方式是爲每個遊戲使用相同的玩家(一個玩家),並有另一個對象來保存具體玩家的具體遊戲參數。
它有道理嗎?或者,也許我需要另一種方法來解決這個問題。無論如何,我認爲最好的方式是不要複製玩家。
您是否考慮過使用實體「玩家屬性」或「玩家技巧」來保存數據,如位置和其他屬性以及player.id?而你的實體遊戲喜歡這個遊戲 ID = 10 player.id = 7 playerSkill.position =進攻 playerSkill.idplayer = 7 playerSkill.speed = 9 .... ???? –
不知道我完全理解這個設置,但也許你可以在遊戲和玩家之間引入第三個實體,也許稱之爲PlayerPosition。它會提及遊戲和玩家,以及玩家對比賽的位置。通過這種方式,玩家的原始位置將被單獨保留,然後您可以查詢他在防守時所扮演的角色。 –
@ SonGoku68是的,我認爲每個玩家應該有一對多的關係。在你的建議中,一個玩家將擁有許多技能。我對嗎?我會爲每個遊戲參數化這個技能。正確? –