为部落冲突(或类似游戏)创建数据库

时间:2015-07-21 19:42:15

标签: database-design

我仍然是玩数据库的新手,并且想要为像clash of clash这样的游戏创建一个跟踪数据库。

我不确定如何构建一些表格。

以下是最终结果: 选择一个用户 用户输入建筑物的水平。 这存储在表格中。

棘手的部分(至少对我来说)是根据用户的当前水平确定哪些建筑物和哪些水平可用。

实施例: 目前的用户水平是TH7和实验室水平5和拼写工厂3

第7节可用的法术是A B C. 但是对于工厂级别3,只有法术是A B. 并且实验室法术A最多可以达到3,法术B可以达到最高等级2。

我的想法是所有建筑物和先决条件的所有排列的巨大表格。但这似乎并不合适。这简化了吗?

请记住,有多种相同类型的建筑物即 5个弓箭塔,5门大炮等

我的查询会是这样的 获取玩家当前的先决条件水平 查找当前TH级别可用的所有建筑物。 确定缺少哪些建筑物和水平。 显示那些。

有一个很好的网页已经这样做了(clasofclans-tracker)但是想要为我自己的用法重新创建它并采用其他游戏。学习练习比其他任何事情更多。

1 个答案:

答案 0 :(得分:1)

我不熟悉部落冲突,但我可以用你的榜样。

  

当前的用户级别是TH7和实验室级别5和拼写工厂3

     

TH7可用的法术是A B C.但是对于工厂等级3,只有法术是A B,实验室法术A最多可以达到3,法术B可以达到最高等级2。

首先,我们将创建对象表。在您的示例中,您命名为User,Laboratory,Spell和Factory。通常,表名是单数。

User
----
User ID
User Name
User Game Name
User Password
User Level
...

Laboratory
----------
Laboratory ID
Laboratory Name
...

Spell
-----
Spell ID
Spell Name
User Level Available
Factory Level Available
...

Factory
-------
Factory ID
Factory Name
...

我们为每个对象创建了一个表。这些表的主键是一个自动生成的整数,我们称之为ID。

现在,这些表本身并不是很有用。我们需要创建将用户与游戏的其他组件相关联的联结表。

我们将讨论的第一个联结表是UserLaboratory表。

UserLaboratory
--------------
User ID
Laboratory ID
Laboratory Level

此表将用户与实验室关联(加入)。实验室级别适用于特定用户和特定实验室。正如您可能猜到的,该表的主键是(用户ID,实验室ID)。

在您的示例中,实验室级别为5。

我们将讨论的下一个联结表是UserFactory表。

UserFactory
-----------
User ID
Factory ID
Factory Level

此表几乎与UserLaboratory表相同,只是它处理工厂。

在您的示例中,出厂级别为3。

我认为此时您可以看到如何创建剩余的联结表。

这是创建任何数据库的过程。

  • 提取所有对象表。
  • 确保对象表定义一个且仅限一个对象。
  • 创建所有联结表。

祝你的数据库努力顺利。