我有兩個獨立的項目/網站,每個都有自己的數據庫。 我想在兩者之間有一個共同的用戶註冊。 我應該爲用戶帳戶創建第三個數據庫嗎?兩個項目共享相同的用戶帳戶
我該如何實施?我正在使用PHP Code Igniter(查看Ion Auth),這也是另一個問題,因爲數據庫配置必須在php配置文件中設置,我將如何在兩者之間進行切換。
我有兩個獨立的項目/網站,每個都有自己的數據庫。 我想在兩者之間有一個共同的用戶註冊。 我應該爲用戶帳戶創建第三個數據庫嗎?兩個項目共享相同的用戶帳戶
我該如何實施?我正在使用PHP Code Igniter(查看Ion Auth),這也是另一個問題,因爲數據庫配置必須在php配置文件中設置,我將如何在兩者之間進行切換。
http://codeigniter.com/user_guide/database/connecting.html
在代碼:
的application/config/database.php中:
$db["default"]["hostname"] = "localhost";
$db["default"]["username"] = "username";
$db["default"]["password"] = "password";
$db["default"]["database"] = "database";
$db["userdatabase"]["hostname"] = "localhost";
$db["userdatabase"]["username"] = "username";
$db["userdatabase"]["password"] = "password";
$db["userdatabase"]["database"] = "database";
在你的模型:
$this->load->database('userdatabase');
// Do user stuff
$this->load->database('default');
創建第三個數據庫將(可能)讓你陷入混亂。兩者都必須「遠程」連接,並且當兩者都想同時更新同一記錄時,你會做什麼。可以管理,但是如果你有一個作爲主人,另一個作爲奴隸,這會更簡單。
你有三個選擇:
1)對「主」數據庫始終驗證 - 因此,即使你主要使用「數據庫奴」,你會跳跨到「數據庫主」認證/註冊/密碼更改等,然後恢復爲「從」進行其他操作。您需要在「Master」中將更改複製到「Slave」的用戶和會話表中,但這很小,可以嵌入到模型中。這是我最常用的模式,也可以跳轉域名/服務器。
2)始終根據本地數據庫進行身份驗證,並將更改從另一個複製到另一個。雖然它起作用,但你可能會陷入混亂,因爲你不確定哪一個是最新的。
3)恢復到「主」和「從屬」選項,您可以設置聯邦表(http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html )。聯合故事支持「更新」,所以當你更新「奴隸」時,你實際上更新了主人。但除非你的數據庫在同一臺服務器上,並且考慮到你的會話表(假設你正在進行無狀態/數據庫處理的會話)將在每次調用時被訪問並經常更新,所以我會避免使用這個選項。只是說'這是一個選擇,雖然。
非常感謝你Robbie。 – user391986
嗨,羅比,你能描述一下你如何完成1) – user391986
的更多細節當然 - 你說的是相同的服務器/相同的域名?或不同的服務器/相同的域名,相同的服務器/不同的域名等? – Robbie
這很有用,謝謝!我仍然不清楚如何設計這個,如果我需要從兩個數據庫中加入數據,該怎麼辦 – user391986
看一下第**段連接到多個數據庫的鏈接** – Geert