2013-06-28 28 views
0

我正在製作一個php解決方案,並正在尋找針對不同客戶端的多個安裝。如果我有20個數據庫,將它們指向相同的PHP代碼庫有什麼問題嗎?例如。速度問題,還是不好的做法?多個數據庫查看單個PHP代碼庫問題?

預先感謝您的想法和經驗:-)

回答

3

這是可能的,並不會影響你的表現,但它有一個缺點。

如果您有一個代碼庫,這意味着您在更新它時必須重新檢查所有客戶端的錯誤。 因此,最好讓客戶分開代碼庫,以便更新特定客戶端的代碼庫並防止其他客戶端出現錯誤。

如果一切似乎都適用於一個客戶端,則可以考慮爲另一個客戶端進行相同的更新。

如果你爲每個客戶端定製代碼,如果它是一個像郵件管理系統這樣的應用程序,這種情況下
這根本不會是一個壞習慣。

如果你已經爲每個客戶端分配了一個版本號,這將是很好的壽。 這使得在單個客戶端上測試新版本成爲可能,並且將其他客戶端緩慢遷移到更新的版本

+0

謝謝。版本的想法是一個偉大的! – Adam

1

我會說與Visser相反。如果在一次安裝中存在錯誤,那麼除非您提供了您的軟件的定製版本,否則所有安裝中都會存在相同的錯誤。當然,不同的客戶可能會以不同的方式使用這些應用程序,因此有些人可能永遠不會遇到讓其他客戶的業務陷入癱瘓的缺陷。因此,我再次不同意Viseer的看法,即不會影響性能 - 使用率的差異可能會導致特定客戶的總體性能出現非常顯着的差異,但在PHP層進行調整將使所有客戶受益。在數據庫層調整是一個稍微不同的故事 - 一些客戶可能會受益於會降低其他客戶的索引。

如果您確實提供了您的代碼的行爲的每個客戶差異,那麼您如何做到這一點取決於這些差異的複雜性。理想情況下,應在數據庫中描述差異,然後相同的PHP代碼會產生不同的結果 - 例如一個客戶想要一個獨立的用戶管理和認證系統,另一個客戶想要使用LDAP認證,第三個OpenID--在這種情況下,您的代碼應該實現全部3個以及基於數據在運行時選擇的方法。

有時(但很少)實施此方法並不實際,對不同的安裝使用不同的應用程序邏輯是解決方案。在這種情況下,正確的做法是在版本控制系統中維護一個分支。一個例子就是網站上的不同品牌 - 除非你正在內容管理系統之上開發,否則使用不同的CSS文件可能會更簡單(我正在努力考慮一個不同PHP代碼合理的例子)。

+0

我同意你的錯誤評論。認爲我的解決方案比您描述的解決方案更簡單。所有安裝都具有相同的用途,它們在使用中沒有區別,只是有些可能無法訪問代碼的某些區域(模塊)。另外數據庫模式將是相同的。這會改變你的答案嗎? – Adam

+0

如果在一次安裝中存在錯誤,則所有安裝中都會存在相同的錯誤。 的確如此,這就是爲什麼您可以使用錯誤修正更新次要版本的原因。 但是,如果你有一個代碼庫,你可能也有特定客戶的新功能,我不會一次爲所有20個客戶端進行更新。 –

+0

@Visser:您將部署與代碼庫混淆。 – symcbean