2011-09-28 22 views
0

UPDATE:我在兩個Startup論壇上問過這個完全有效的問題,每個人都指着我將StackOverflow作爲一個高度技術性的問題,如何成功構建這樣一個系統。令我驚訝的是,在StackOverFlow中我的問題被關閉了。如果不允許在這裏回答,那麼我應該在Facebook上問這個問題?如何構建一個SAAS來爲多個客戶提供服務?


現在我的軟件已經到了演示階段,只有一個主要用戶或讓它叫做帳戶。這個主賬戶使用幾個主表和一些查詢表。因此,無論數據存儲在這些主表中,它基本上都是爲了這個帳戶。

但是,一個SAAS旨在服務於許多帳戶,每個人顯然應該只能看到自己的數據,當打開應用程序。

我該如何正確設計它?因此,當客戶成功登錄時,他只能看到分配給他的數據,並且只能看到他的公司的同事在下拉列表中查看等等。

在插入,刪除或選擇行時,每個主表是否應該獲取userId和companyId列,並且所有CRUD查詢都應該過濾?

非常感謝您的諮詢, 卡瓦

回答

1

SAAS並不一定意味着所有客戶必須有相同的數據庫。在某些情況下,一個數據庫就足夠了,但如果您將CRM或ERP系統構建爲SAAS,則確實會爲每個客戶使用單獨的數據庫。它不會違反任何規則,因爲SAAS應用程序仍然可以對每個帳戶進行一些配置 - 在這種情況下,配置可以是連接字符串,某些處理程序具有更多權限以根據需要創建數據庫。

如果你使用單個數據庫,你將不得不在每條記錄中保留一些額外的數據,以將它們綁定到單個帳戶/客戶。這絕對是可能的,但在同一時間它很難並且非常容易出錯。您可以忘記在某些特定情況下進行過濾,單個帳戶將獲得來自其他帳戶的信息 - 這可能會損害您的應用程序的聲譽,並且您可能會立即失去您的客戶。

通常這兩種解決方案都是可行的並且可以使用。這實際上取決於您的應用程序的細節和您的數據所要求的安全級別。它還取決於每個客戶的預期數據量,因爲它會影響單個數據庫解決方案的可伸縮性。

+0

爲每個客戶提供他們自己的數據庫消除了整個安全問題。 –

+0

非常有趣的想法。這是真的,該應用程序實際上是一個CRM。但它將部署在Microsoft Azure Cloud上。因此,爲每個客戶建立一個數據庫可能是一種非常安全的方式,但租用雲數據庫非常昂貴。它不會讓我的公司有任何盈利空間。我需要學習更多關於此主題的信息,並與Microsoft聯繫並查看他們的建議。請分享更多的想法,我隨時準備學習新的想法。 – Houman

+0

我發現了一些非常有趣的東西。 http://msdn.microsoft.com/en-us/library/aa479069.aspx看來孤立的解決方案只有一種方法來做到這一點。我認爲最好的方法是第三個「多租戶」在我的情況,這在這裏更詳細地解釋:http://msdn.microsoft.com/en-us/library/aa479086.aspx – Houman

相關問題