2010-11-28 26 views
4

我的公司創建了很多具有非常類似功能的應用程序,每個應用程序之間有一些差異。例如,一些網站具有創建羣組功能,其他網站具有用戶個人資料頁面,而其他網站則允許用戶累積成就點等。如何創建集中用戶數據庫

我們的客戶希望用戶能夠使用相同的用戶名/密碼登錄到每個應用程序,因爲用戶不得不爲每個站點註冊不同的帳戶。

我們如何設計我們的數據庫?爲我們的所有應用程序建立一個單一的中央數據庫,還是將它們分成單獨的數據庫和跨數據庫的JOIN,會更好嗎?哪種更好的性能和設計明智?

感謝您的任何見解!

+0

請給出更多細節。用戶基數的大小?申請數量?這些都是基於普通的堆棧(我假設PHP/mySql),還是需要添加多種技術,包括交換,蓮花,傳統應用程序? – 2010-11-29 12:38:55

回答

1

我會有一箇中央服務器,它託管一個用戶數據庫和Web服務來訪問該用戶數據庫。

通過這種方式,您可以使用相同的數據庫,並通過Web服務從前端對該系統執行登錄。

這也是可擴展的,並且可以隨着應用程序的複雜性而增長。

2

只需使用OpenID即可。最簡單的就是使用Facebook Connect作爲提供商。他們讓你得到你所有的用戶數據(比如姓名等),這樣你就可以根據需要識別和挖掘數據。

如果您不想依賴外部提供商來處理您的用戶帳戶,那麼請成爲您自己的OpenID提供商。

1

我會採取其他兩個答案,並結合他們做出private OpenId Provider

這樣您就可以使用標準的OpenId客戶端來開發您的應用程序,甚至可能爲您的應用程序打開外部OpenId提供程序。

這給組織內其他應用程序的可擴展性和開放標準使用相同的提供者。

1

以一般的方式,我將開發將是Master Data的表格,它們將是真實應用程序範圍的單一版本。每個應用程序都將訪問相同的「客戶羣」。在你的情況下,似乎主數據的概念可以應用到你的應用程序數據庫。

2

如果應用程序託管在公司內,您可以使用活動目錄。 您可以使用ldap功能從php訪問活動目錄。您可以將用戶添加到活動目錄中的組,以使他們能夠訪問應用程序中的各種功能。