【问题标题】:php flash highscore system for a games site一个游戏网站的php flash高分系统
【发布时间】:2010-08-03 11:15:57
【问题描述】:

我目前正在为一个游戏网站开发基于 php/flash/mysql 的高分系统。该系统的主要目标是使用Flash游戏提交数据库中的分数。每当用户进行评分时,它将反映在数据库中。在测试环境时,当我从 Flash 文件提交分数时,分数正在提交到数据库中。

注意:在这个系统中,注册用户和访客用户都可以提交他们的分数。

案例1:如果注册用户提交分数,那么它将被提交到数据库如果用户已经登录,如果他没有登录但他是注册用户并且得分最高并且想要提交score 然后在此之后我想在数据库中提交他们的分数。在这里我怎么能做到这一点。 案例2:如果用户不是注册用户并且想以注册用户的身份提交,那么我该如何实现呢。

【问题讨论】:

  • 你的用户和分数的数据库方案是什么,我猜你有 2 个不同的表,对吧?

标签: php mysql flash


【解决方案1】:

如果您有 2 个单独的表格,我会这样想,我相信这不是一个完美的方法,但我认为它可以解决问题:

用户:user_id、session_id、用户名等 分数:scores_id、user_id、score等

向表 users 添加一个名为 session_id 的附加列 当您要保存分数时,创建一个用户行并将 session_id() 保存到 session_id 列中(您现在获得了返回该当前用户的引用)。

如果他们在保存分数后注册,则根据当前的 session_id 获取 user_id 并更新他们输入的相关字段。

如果他们在保存分数后登录,则获取具有其 session_id() 的行的 ID(对于此评论中的引用,我将其称为 unregistered_user_id)。获取成功验证用户的 ID(对于此评论中的引用,我将其称为 login_user_id)。

现在在表分数中,更新分数集 user_id = loggedin_user_id 其中 user_id = unregistered_user_id。所以知道我们知道这个分数是登录用户的,并且在他们的历史记录中。

然后从用户中删除该行是临时的: 从 user_id = unregistered_user_id 的用户中删除

//优化表,所以一切都被索引,等等等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-04
    • 2010-09-23
    • 1970-01-01
    • 2012-09-17
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    相关资源
    最近更新 更多