需要有关如何为在线交易卡游戏构建数据库架构的建议

时间:2014-03-07 18:15:30

标签: mysql sql database database-design unity3d

我目前正处于交易卡游戏的早期阶段。我有一个关于如何处理数据库模式的问题,请原谅我的术语,如果我滥用它。

关于它将如何使用的一点背景。客户端在Unity3d中编码,所有命令将通过php传递给服务器。 php将处理游戏的逻辑功能。这在理论上应该显着减少作弊。服务器将游戏状态返回给客户端,将结果显示给用户。

我对SQL有点熟悉,我正在使用MySQL作为数据库。我已经阅读了有关可扩展性问题的内容。我并不太关心它,因为我对成千上万的玩家没有任何疑虑,如果确实如此,那我就会担心。

我的删节数据库结构如下:

users -> userID(unique device ID) , name
card -> cardID, name, type, cost, image, rarity, attack, defense, description
tag -> tagID, name, description
ability -> abilityID, name
card_tag -> cardID, tagID
card_ability -> cardID, abilityID

我不确定如何构建数据库以保存每个用户的信息。我至少知道,或者相信我做,我需要什么。数据库应该保存他们用户拥有的每张卡以及它当前所在的牌组。我正在考虑允许3个牌组,并且单张牌可能不属于他们或者更多。卡片本身将能够获得exp和级别。升级后,卡的统计数据和能力可能会发生变化。当卡片升级时,将向用户呈现不同的选项以增强它。因此,两个相同的牌不同会有轻微差异,例如:一个将有+1攻击,另一个可能有+1防御。

我在想一个解决方案就是为每个用户创建一个表格,以包含他们的卡片,其中包含卡片体验,级别,套牌会员资格以及其中包含的其他独特内容。我可以看到这可能会失控。

另一种可能性是拥有一个包含卡片实例的非常大的表格,并在其中引用用户。

我确信还有其他方法,但你不知道你不知道什么。非常感谢任何帮助!

编辑:玩家将能够拿走他们拥有的牌并将其分配到牌组进行分组。套牌将由60张左右的牌组成,它将是游戏中使用的牌。一个小例子:用户有卡片A,B,C,D,E和2x的F.卡片A由卡片A,B,C和F组成。卡片B,C,D和F两个。三个由A,B,D和2x F组成。

1 个答案:

答案 0 :(得分:0)

您至少需要从我的描述中获得:

user_cards(userID, cardID, attack, defense)
user_decks_cards(userID, cardID, deck_no)
user_card_abilities(userID, cardID, abilityID)