我目前正在为游戏网站开发基于php / flash / mysql的高分系统。该系统的主要目标是使用Flash游戏在数据库中提交分数。每当用户进行分数时,它将反映在数据库中。在测试环境时,当我从flash文件提交分数时,分数将在数据库中提交。
注意:在此系统中,注册用户和访客用户都可以提交他们的分数。
案例1:如果注册用户提交了分数,那么它将被提交到数据库中。如果用户已经登录,如果他没有登录但是他是注册用户并获得最高分并想要提交然后得分,我想在数据库中提交他们的分数。在这里我怎样才能做到这一点。 案例2:如果用户不是注册用户并希望以注册用户身份提交,那么我该如何实现这一目标。
答案 0 :(得分:0)
如果你有两个单独的表我想这个,我相信它不是一个完美的方法,但我认为它可以解决这个问题:
用户:user_id,session_id,用户名等等 分数:scores_id,user_id,得分等等
向名为session_id的表用户添加其他列 当您要保存分数时,创建一个用户行并将session_id()保存到列session_id中(您现在有一个引用以返回当前用户)。
如果他们在保存分数后注册,请根据当前的session_id获取user_id并更新他们输入的相关字段。
如果他们在保存得分后登录,请获取对其具有session_id()的行的ID(对于此评论中的引用,我将其称为unregistered_user_id)。获取成功的authed用户的ID(对于此评论中的引用,我称之为loggedin_user_id)。
现在在表分数中,更新分数设置为user_id = loggedin_user_id,其中user_id = unregistered_user_id。所以知道我们知道这个分数是登录用户的,也就是他们的历史记录或者历史记录。
然后删除临时用户的行: 从user_id = unregistered_user_id
的用户中删除//优化表格,以便为每个事件编制索引等等。