2010-08-03 108 views
0

我目前正在研究基於php/flash/mysql的高分系統遊戲網站。這個系統的主要目標是使用Flash遊戲提交數據庫中的分數。每當用戶進行評分時,都會反映在數據庫中。在測試環境中,當我從Flash文件提交分數時,分數將在數據庫中提交。php flash高分系統遊戲網站

注意:在這個系統中,註冊用戶和訪客用戶都可以提交他們的分數。情況1:如果註冊用戶提交了分數,那麼它將被提交到數據庫中如果用戶已經登錄但是他沒有登錄但是他是註冊用戶並且提交了最高分並希望提交在這之後,我想在數據庫中提交他們的分數。我在這裏如何做到這一點。案例2:如果用戶不是註冊用戶並且想要以註冊用戶身份提交,那麼我如何實現這一點。

+0

什麼樣的DB計劃對於用戶和分數,我猜你有兩個不同的表格吧? – PHPology 2010-08-03 11:45:50

回答

0

我想這一點,如果你有2個獨立的表,我相信它不是一個完美的方法,但我認爲它的伎倆:

用戶:USER_ID,SESSION_ID,用戶名等,等 得分:scores_id ,user_id,分數等

向表用戶添加一個名爲session_id的附加列當您要保存分數時,創建一個用戶行並將session_id()保存到session_id列(您現在已獲得一個參考回到當前用戶)。

如果他們在保存分數後註冊,根據當前session_id獲取user_id並更新他們輸入的相關字段。

如果他們在保存分數後登錄,則獲取具有其session_id()的行的ID(針對此評論中的引用稱爲unregistered_user_id)。獲取成功驗證用戶的標識(對於此評論中的引用,稱其爲loginin_user_id)。

現在在表格得分中,更新得分設置爲user_id = loggedin_user_id,其中user_id = unregistered_user_id。所以我們知道我們知道這個分數是登錄用戶的,這是他們的歷史或者以往的。

然後刪除從用戶那裏是臨時行: 從用戶那裏USER_ID = unregistered_user_id

//優化表中刪除,所以萬物被索引,等等,等等