我正在構建一個應用程序(使用zend框架),我們將有多個客戶端登錄並使用應用程序,並且這些客戶端中的每一個都將存儲大量有關其用戶的數據(我使用MySQL btw)。Zend的多個數據庫
基本上我想知道兩兩件事:
是具有多個數據庫,一個用於每個客戶端(即ipd_client_CLIENTNAME。)具有相同的表一個愚蠢的想法?或者如果我們有50個客戶端,其'數據庫'中有20,000個用戶的數據,它是否會更具響應能力(比將所有內容放在一個數據庫中)? 我已經設法構建了同一個系統,但都在一個數據庫上,我的模型類只需獲取登錄的客戶端名稱(在模型類的init()方法中),然後動態更改它們的表名從中獲取數據,這會很好嗎?
如果「系統中的每個客戶端都有自己的數據庫」是合理的,我將如何動態更改我的db模型連接的數據庫(基於哪個客戶端登錄)?
如果這樣做毫無意義,這裏的數據庫是什麼樣子的例子在兩種不同的情況(給定系統上註冊2個客戶端):
多個數據庫:
ClientA擁有一個名爲「ipd_clients_ClientA」的數據庫,其中包含表「users」,「lists」。
ClientB擁有一個名爲「ipd_clients_ClientB」的數據庫,其中包含表「users」,「lists」。
單一數據庫:
客戶端A具有表稱爲 「users_ClientA」, 「lists_ClientA」。
ClientB具有名爲「users_ClientB」,「lists_ClientB」的表。
希望這是有道理的。
任何幫助將非常感謝,謝謝!
爲了讓您更好地瞭解自己在做什麼,我正在構建類似於MailChimp的東西,所以我們使用該應用程序的客戶將存儲有關其訂戶的各種信息(當我使用「用戶」以上,我的意思是用戶,所以他們也不會成爲我們系統的用戶,只有我們的客戶)。 – machinemessiah 2010-09-24 01:08:00