【发布时间】:2014-03-07 18:15:30
【问题描述】:
我目前正在开发一款处于早期阶段的集换式卡牌游戏。我有一个关于如何处理数据库架构的问题,如果我滥用了我的术语,请原谅。
关于如何使用它的一些背景知识。客户端使用 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 个牌组,而一张牌可能不属于任何牌组或更多牌组。卡片本身将能够获得经验和等级。此外,在升级卡的统计数据和能力时,可能会发生变化。当卡片升级时,用户将看到不同的选项来增强它。所以同一张牌的两张不同等级会有细微的差别,例如:一张有+1攻击,另一张可能有+1防御。
我在想一个解决方案是为每个用户创建一个表格,以包含他们的卡片,其中包含卡片体验、级别、套牌会员资格以及其他独特的东西。我可以看到这可能会失控。
另一种可能性是拥有一个包含卡片实例的非常大的表,并在其中引用用户。
我相信还有其他方法,但你不知道你不知道什么。非常感谢任何帮助!
编辑:玩家将能够拿走他们拥有的卡片并将它们分配到牌组中进行分组。一副牌将由 60 张左右的牌组成,这将是在游戏中使用的牌。一个小例子:用户有卡片 A、B、C、D、E 和 F 的 2x。甲板一由卡片 A、B、C 和 F 组成。甲板二由 B、C、D 和 F 组成。而甲板三由 A、B、D 和 2x F 组成。
【问题讨论】:
-
请说明什么是“甲板”
-
添加了上面示例的说明。
-
卡组 1 和卡组 3 中的卡 A 真的一样吗?即甲板1中的升级A适用于甲板3中的A?
标签: mysql sql database database-design unity3d