游戏具有玩家可以拥有的5种技能:
Skills: Run, Jump, Shoot, Fly, Sleep
一个玩家可以拥有所有技能,只有一部分技能或者没有。玩家将具有与每个技能相对应的值,该值将根据其表现而增加或减少。为玩家设定的技能示例如下:
run: 30
jump: 87
Sleep: 2
接下来,游戏有10个关卡。每个级别都有一组玩家必须具备的先决条件技能,才能参与竞争。一个级别也可能具有完成另一个级别的先决条件。
例如,第5级可能具有以下先决条件:
Level 5 requires: 10 Fly, 25 Sleep, 90 Run and completion of level 1,2,3
对于我的用例(在最后给出),我决定将必备信息存储在MYSQL数据库中。我可以想到两种存储上述信息的方法:
方法1:
方法2:
我的用例如下:
给定玩家的技能以及他们完成的等级,他们有资格参加哪些等级?
牢记这一点,方法1,方法2或完全不同的解决方案是解决我的问题的最佳方法吗?如果这是前进的方向,我也欢迎不依赖于MySQL的建议!
注意:玩家信息(即技能级别,完成级别)不在数据库中。将它们视为输入参数,查询中将使用这些输入参数来获取玩家的合格等级
答案 0 :(得分:1)
这取决于您的级别和技能是否固定,或者您打算以后再添加新的级别和/或技能(或希望至少对此保持开放状态)。
在第一种情况下,我假设假设以数字表示此类问题,那么非常简单的表将提供一个很好的解决方案:
在这种情况下,先决条件表可以具有16个属性:
LevelID, RequiredRun, RequiredJump, RequiredShoot, RequiredFly, RequiredSleep, RequiredLevel1, RequiredLevel2,...,RequiredLevel10
和十行,例如,在您的示例中,对应于级别5的行是:
5 90 0 0 10 25 1 1 1 0 0 0 0 0 0 0
另一方面,如果您想设计将来可以增长的东西,那么方法1是正确的选择。