2010-07-26 45 views
0

我打算在asp.net mvc中創建一個會計應用程序。
每個用戶將支付包月,我將提供每日備份等選擇構建基於Web的業務應用程序的策略

我不知道選擇哪種策略:

  1. 要使用SQL CE4和單獨的虛擬目錄中運行應用程序爲每個用戶。
  2. 把一切都在一個SQL Server數據庫

什麼是這兩個選項缺點和優點?
如果我選擇選項2,則必須在代碼中編寫更多邏輯。我必須防止用戶看到他們不應該看到的東西(更多訪問數據庫)。

兩個最重要的事情是:

  1. 系統
  2. 能夠輕鬆地創建單獨的用戶備份的一般表現。

我期望有20到30個用戶。

任何建議將不勝感激。

+0

通過「爲不同用戶輕鬆創建備份」,這些邏輯備份是指這些邏輯備份,還是您的意思是數據庫的每個物理備份應該只有一個用戶的數據? – bryanjonker 2010-07-26 18:23:31

+0

數據庫的每個物理備份只能有一個用戶的數據。 – 2010-07-26 18:26:25

回答

3

我會一如既往地爲選項2。我來自緊張的金融整合背景,所以選項2(對我來說至少)是最好的。

在考慮使用數據時,沒有控制點。沒有比選項1更多的往返行程。

系統的性能通常由程序員決定。如果你寫出糟糕的代碼,你可能會遇到糟糕的表現。選項2提供了最簡單的備份選項,因爲您只需要擔心1個數據庫。如果您使用1個數據庫,則根本不需要考慮單獨的用戶。

RE:用戶的往返行程(或代碼中的更多「邏輯」來處理),添加「Where userID = x」有多難?

你應該使用存儲過程反正來分離.NET代碼從地面所以寫起來應該沒有了(甚至更少)往返/文件訪問的問題比你有選擇1

+0

+1是的,在每個查詢中增加一個「Where userID = X」,我會減少往返次數。謝謝。 – 2010-07-26 18:41:09

+0

@šljaker爲了強制執行此操作並避免在某些查詢中意外關閉租戶ID,可以使用內聯表值函數來包裝基表,這些函數需要每次提供租戶ID。 ITVF的開銷類似於視圖(即最小化),優化器可以非常輕鬆地與它們一起工作。 – 2010-07-26 20:30:44

+0

@Cade Roux,你能告訴我任何樣品嗎? Tnx – 2010-07-26 21:50:38

0

如果您在單個數據庫中進行多租戶設計,您可能不會真正能夠使用SQL Server的備份功能,因爲備份單元不足以單獨備份每個用戶的數據。您可以使用partitions和文件組以及僅備份文件組,但分區功能並非易於管理,並且可能不適合此目的。

如果您希望爲用戶獨立使用SQL Server的備份和恢復功能(聽起來像您的評論),您可能需要將它們放在單獨的數據庫中。儘管如此,我會重新考慮這個需求(考慮實現選擇性導出/導入),因爲多租戶架構更容易處理整體問題。

+0

備份是我的主要問題之一:( – 2010-07-26 21:48:50

+0

@šljaker這取決於你的備份方案 - 如果它是作爲服務提供商(你)由於硬件故障恢復數據,這可能是好的,但如果你希望用戶能夠自行備份還原或能夠在本地進行備份和還原,SQL Server備份可能不適用於此目的。 – 2010-07-27 01:49:41

相關問題