2011-06-01 22 views
1

我的程序旨在用於多個項目(客戶端)使用。我工作w/PHP和Mysql。爲每個用戶組分配數據庫?

例如,客戶端程序的實現將包括所有需要的表以及該客戶端的用戶列表。

該程序的每個實現(對於單獨的和完全不同的客戶端)將使用相同的一組表但是分開。例如,客戶端A將有一個用戶列表TABLE,而客戶端B將有一個用戶列表TABLE,但它們不是同一個表。

我會爲每個實現有一個單獨的數據庫(並因此,爲每個新的數據庫啓動一組新表)?

我需要了解什麼我在編程階段還處於早期階段,但是希望爲下一步做好準備。仍在爲一個數據庫中的表格編程,但我不想在這條路上有任何意外。 我目前託管在一家公共託管公司。

+1

另請參見[爲每個客戶端使用單個數據庫有什麼優勢?](http://stackoverflow.com/questions/13348/what-are-the-advantages-of-using-a-single-database - 用於-每個客戶端)。 – 2011-07-06 06:34:25

回答

1

您可以創建一個主表,它將存儲每個客戶端和客戶端登錄信用的數據庫名稱。 一旦他們登錄,根據他們的客戶端ID,您需要選擇數據庫。 對於新的客戶端註冊,您需要使用其客戶端名稱前綴創建數據庫副本。

+0

這是這種實現的典型方式嗎? – 2011-06-01 01:48:21

+0

這取決於。通常情況下,我們將記錄與一個額外的列一起存儲爲ClientID,以便與每個表中的其他客戶端區分開來。但問題是記錄增加時,效率會受到影響。 – AjayR 2011-06-01 02:02:39

0

絕對要用多表。如果您需要調試/更新/刪除單個客戶端,它將爲您節省大量時間。另外,如果客戶想要自定義修補程序並決定創建它,則可能會損害其他客戶的數據。此外,您可能需要不同的字符集整理。

+0

我在每個數據庫中都有多個表。但我的問題是,每個客戶端都需要同一組表。但他們的數據不能混合在一張表中。例如。我認爲客戶公司A的用戶不應該出現在同一個用戶列表主表中。我應該如何實現這個 – 2011-06-01 00:45:41

+0

我想到了不同的數據庫,而不是表格。如果你想在一個數據庫中使用相同的表格(和你的問題一樣),我會在表格前加上一些前綴。像'client1_permissions','client1_posts','client2_permissions','client2_posts'等等。這將創建一個很好的概述和非常清晰的視圖,但我不想想象如果每個客戶端有5個表,並且您在某個時間點有1000個客戶端(5000個表)。 – RRStoyanov 2011-06-01 00:52:32

+0

我也考慮過多個數據庫。我想我們正在談論同樣的事情 – 2011-06-01 01:50:23

相關問題