玩家的卡片收集MySQL

时间:2015-04-18 02:52:24

标签: c# mysql sql dictionary unity3d

我正在使用C#进行在线TCG,并且无法找到存储和检索播放器卡片集的有效解决方案。基本上我想要的是数据库中的每个玩家都有一个"卡集合"我认为这将是某种类型的字典,其中包含表单的条目(卡片ID,金额拥有)。我将经常添加,删除和编辑此集合中的每个条目。我正在研究XML序列化,但似乎对于大量的卡来说它会很慢。我还想过像做一串

一样

" ID1,amount1

ID2,AMOUNT2"

只是分开了','和换行符,但我觉得编辑字符串会很麻烦。其他人的建议就像一个包含以下字段的新表:userid,cardid,amount。我正在使用MySQL,并不熟悉这些数据库解决方案。对此有最佳解决方案吗?

2 个答案:

答案 0 :(得分:1)

[Users  ]
|UserID_|
|....   | 
|_______]

[Cards   ](all cards in the TCG)
|CardID_ |
|....    |
|________|

[Decks      ]
|DeckID_    |
|DeckUserID | -> Users.UserID 1..n
|....       |
|___________|

[DeckCards] 
|DeckID_  | -> Decks.DeckID 1..n
|CardID_  | -> Cards.CardID (1..n||1..1) to fit your needs
[_________|

[Collection   ]
|CollectionID_|
|UserID       | -> Users.UserID 1..1 to bound only one collection per user
|....         |
|_____________|

[CollectionCards] 
|CollectionID_  | -> Collection.CollectionID 1..n
|CardID_        | -> Cards.CardID (1..n||1..1) to fit your needs
[_______________|

您只显示:用户 - >收藏 - > CollectionCards->卡片,用于在用户集合中显示卡片。

您只显示:用户 - > Deck-> DeckCards->卡片以显示卡片中的卡片

我希望可以理解......

答案 1 :(得分:0)

绝对在数据库中使用连接表。如果您拥有正确的索引和引擎设置,那么读取集合可能非常有效。操作集合也会更有效率 - 序列化并不便宜!

如果您想要制作有关普通玩家收藏品构成的统计数据,它也会很好地为您服务。