【问题标题】:PHP/MYSQL Database Logic QueryPHP/MYSQL 数据库逻辑查询
【发布时间】:2013-07-14 01:34:48
【问题描述】:

尽量不在这里重新发明轮子,所以想'我会问你们;

有一个用于计算机游戏的现有数据库,用于记录 - 地图名称、完成地图所需的时间、难度级别、人物 ID。该数据库用于记录每个玩家的最佳完成时间。所以玩家可以输入特定的命令,它会显示特定地图的最佳完成时间。

现在我想创建一个排名系统,根据难度级别奖励玩家完成地图的积分,例如,轻松完成地图奖励玩家 1 分,中等奖励 2 分等。此排名系统将显示得分最高的顶级玩家。

我的问题是,用现有的数据库,用PHP来完成新的排名系统会不会更好

创建一个新的数据库来完成它?

在任何一种情况下,一个简单的逻辑示例都会受到赞赏。

【问题讨论】:

    标签: php mysql database logic


    【解决方案1】:

    我认为最好只使用您现有的数据库。逻辑示例是什么意思?

    【讨论】:

    • 例如,打印前 10 名(得分最高的玩家)的最佳方式是什么。使用当前数据库,每个玩家的每张地图的每次完成时间都会记录下来,因此玩家可以有多个地图条目
    • 也许你应该让它覆盖旧的时间。然后使用某种搜索/排序算法。
    【解决方案2】:

    你可以试试这个:

    SELECT *, (count(*) * difficulty) AS total
    FROM `map`
    GROUP BY user_id
    ORDER BY total DESC
    LIMIT 10
    

    difficulty是一个表字段,1表示容易,2表示中等,以此类推

    【讨论】:

      【解决方案3】:

      正如凯尔所说,使用您当前的数据库/表并让 php/SQL 完成工作。我会做点什么

      select player,
             Map,
             Count(*)
      From mytable
      Group by player, map
      

      这应该会为您提供按地图完成的玩家计数。不过测试一下。获得计数后,您可以循环计数并根据地图乘以奖励积分。

      【讨论】:

        猜你喜欢
        • 2016-12-29
        • 2018-07-14
        • 1970-01-01
        • 2017-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-12
        相关资源
        最近更新 更多