2016-11-16 90 views
-1

我們有多個同步到一個奴隸的主人。我們決定爲每個主數據庫創建一個數據庫(比如說MDB0001; MDB0002; MDB0003等)。如果一個複製失敗或損壞了數據,這將允許不會損壞整個數據庫...從屬用於向網絡上的人員顯示信息(主站僅在本地網絡中可用)一個網站 - 多個數據庫

其目的是:我們希望在服務器(從屬)上有一個網站(在php中),它顯示每個數據庫的內容,取決於誰登錄。因此,如果用戶MDB0001已連接,則必須從數據庫讀取數據MDB0001。

這怎麼辦?這是一個好方法嗎?或者,我是否必須爲每個數據庫複製網站?

我希望我的解釋清楚。謝謝

+1

什麼?你有每個用戶的數據庫?你有多少用戶? – 2016-11-16 02:44:52

+0

這不是我決定的......目前,我們有2個數據庫。但每次系統銷售時,都會創建一個新的數據庫。我的第一個想法是用不同的主鍵(唯一鍵+自動增量)爲每個主數據庫創建一個數據庫,然後它將被複制到同一個數據庫中。但技術人員表示,將它們單獨用於複製將會更容易和更安全。現在是改變主意的時候了。系統的這部分尚未創建。這就是我問這個問題的原因。 – sincos

+0

當您有5000個客戶時,爲維護噩夢做好準備。 – tadman

回答

0

假設你從登錄中得到一個變量,你可以在你的db.php頁面上放置一個key-> value數組;

$userDBs = array('login1'=>'db1','login2'=>'db2'); 

$dbName = $userDBs[$loggedinID]; // if login1 logs in, db1 would be result. 

    $db = new PDO('mysql:host=localhost;dbname='.$dbName, 'someUser', 'somePass'); 

或有一個單獨的分貝的關聯:

$sel = "Select dbName from databases where userId='".$loggedInID."'"; 
    $stmt = $db->query($sel); 
    while($r = $stmt->fetch()){ 
     $dbName = $r['dbName']; 
    } 

$db = new PDO('mysql:host=localhost;dbname='.$dbName, 'someUser', 'somePass'); 
+0

我不知道這是如何回答問題 – 2016-11-16 03:39:08

+0

大聲笑,你今晚都在我身邊。他問,如果login1登錄,他們使用db1,如果login2登錄他們使用db2,我錯了嗎? – bart2puck

+0

對不起,如果看起來這樣,我想我更關注複製問題,這實際上並沒有問到。 – 2016-11-16 03:51:47

相關問題