2013-02-26 71 views
0

我正在運行一個遊戲服務器和一個遊戲論壇。每個都有自己的數據庫。遊戲服務器有一個數據庫,用於跟蹤所有玩家和他們的商店積分(用於遊戲中的化妝品)。然後是跟蹤用戶,帖子等的論壇數據庫。如何根據其他數據庫中的更改修改一個數據庫中的值?

我的目標是獎勵發佈在論壇上的玩家,他們在每次提交論壇帖子後授予他們遊戲幣。我正試圖通過這種方法來提高論壇的參與度。

我該如何做到這一點,以便每當用戶發佈帖子時,它都會告訴遊戲服務器的數據庫將一定數量的遊戲幣添加到其附加帳戶中?

論壇通過他們的註冊ID跟蹤用戶。遊戲服務器通過他們的賬戶ID跟蹤用戶。

感謝您的幫助!

+0

你使用的數據庫類型是什麼? MySQL的? – 2013-02-26 05:56:03

+0

是的,MYSQL數據庫。 – raimond 2013-02-26 06:02:23

回答

0

我假設你沒有訪問權限或不希望爲你的論壇安裝添加代碼以實現此目的,那麼解決方案可能是使用MySQL的觸發器。你需要用正確的表名替換,因爲你沒有發佈你的數據庫表結構。

CREATE TRIGGER `CreditsSync` AFTER UPDATE ON `F`.Posts 
FOR EACH ROW BEGIN 
    UPDATE `U`.Users, `F`.Posts SET `U`.Users.credits = `F`.Posts.num WHERE `F`.Posts.userid = `U`.Users.id 
END 

觸發器需要MySQL 5.5或更高版本,請參閱https://dev.mysql.com/doc/refman/5.5/en/triggers.html以獲取更多信息。

編輯 - 注意到您想插入不同數據庫的不同表中,在上面的SQL F =論壇數據庫中,以及U =用戶數據庫 - 您需要將其替換爲正確的dbs目標和桌子。

+0

你好,謝謝你的幫助。我會仔細看看的。是的,我準備修改我的論壇來實現這個結果。如果我嘗試修改論壇或按照您發佈的方式進行操作,最好嗎? – raimond 2013-02-26 06:32:58

+0

這取決於你的MySQL版本,觸發器是解決這個問題的好方法 - 但是如果你沒有這個版本,你需要在你的論壇安裝中添加一些(PHP?)代碼。如果您發現答案有幫助,您可以接受並/或爲其投票。 – 2013-02-26 06:56:17