2016-04-01 57 views
0

我正在建立一個網站,將有來自多個公司的多個用戶。每家公司都有相同表格的同一個數據庫的副本。唯一的區別是數據庫名稱。我希望每個用戶只能訪問分配給他們公司的數據庫。如何處理基於用戶的數據庫選擇?

我需要想出一種方法來根據用戶的登錄選擇數據庫。使用用戶表中的會話變量作爲數據庫名稱可以接受嗎?...

$dbCon = new mysqli('localhost', 'root', '', $_SESSION['databaseName']);

也許Cookie?或者我看錯了整個事情。任何輸入都會很棒。我還在學習。謝謝

+0

有多個數據庫中的信息完全相同的邏輯是什麼?我認爲只允許來自公司的不同用戶訪問一個數據庫是有效的。 –

回答

1

我的建議是選擇一個數據庫作爲您的「登錄」數據庫,其中包含一個表中的所有用戶帳戶。然後在用戶表中添加一列,以便對其登錄進行身份驗證。您可以將該公司或「分配的數據庫名稱」存儲在該列中。一旦通過身份驗證,您可以關閉數據庫連接並使用正確分配的數據庫打開新連接。

0

你可以有以下模式爲你的用戶登錄

LoginTable(username,password,...,company_id)

公司(company_id,....,dbname)

因此,一旦用戶登錄,他可以選擇相應的公司ID數據庫來自公司的表格。查詢可以通過自然加入公司和LoginTable.Hence在單個命令中編寫,在檢索到dbname後,您可以將其存儲在會話變量中以供進一步使用。

我希望你能理解。