2013-05-28 148 views
1

我想實現數據庫的多租戶架構。計劃是有相同的數據庫,但有架構在其中將有相同的表,sprocs,觸發器等重複每個租戶。租戶將被映射到一個模式並添加一個租戶就像添加一個模式。Azure中的多租戶數據架構

而根據子域,我會找出租戶並將信息推送/推送到相應的數據庫模式。

然而,在尋找實現相同的方法時,我遇到了許多文章和博客,並且很疑惑'schema'這個詞在我的上下文中是正確的還是應該去聯邦?如果我必須去聯邦 - 這是否意味着每個租戶都將是一個聯合成員,將被映射到一個模式?

有人可以拋出更多的光線嗎?

+0

什麼是驅動你需要物理分割每個租戶的模式?您是否期望這些模式從租戶到租戶有所變化,或者您是否期望每個租戶不想與其他租戶接近並導致意外數據損壞或其他原因? – Igorek

+0

可能的重複[是否有任何好的多租戶Azure示例應用程序?](http://stackoverflow.com/questions/11003049/are-there-any-good-multi-tenant-azure-sample-applications) – astaykov

+0

@ lgorek:我想要基於模式的實現來確保數據的邏輯分離並確保數據隔離不在行級別。所以,你的第二部分假設 - '每個租戶不想接近其他租戶,並導致意外數據損壞或其他原因'是什麼讓我走模式層面分離。 – iomca4u

回答

0

我寫了BusinessCloud9.com短的系列文章,可能會感興趣:

http://www.businesscloud9.com/user/2688

(我會不勝感激,如果你會忽略SQL Azure數據庫中表的數量不正確的聲明!不幸的是,我沒有能力編輯違規的帖子來修復它)

0

SQL Azure聯合可能會爲您做訣竅,但可能會意外創建一個扇出查詢,其中會查詢多個數據庫並導致無意間混合的結果。如果您希望將模式完全分開,並且由於錯誤代碼而不會意外混合數據,則需要多個不同的SQL Azure數據庫或模式。您需要在新租戶加入時配置它們。 下面是關於這個問題的一個很好的鏈接:http://geekswithblogs.net/hroggero/archive/2011/10/05/solving-schema-separation-challenges.aspx從SQL Azure的的MVP之一

+0

@lgorek:感謝您的回覆.....而不是物理數據庫/聯邦成員我們可以沒有SCHEMA(就像在oracle世界中),其中SQL Azure數據庫中的邏輯分隔和每個模式具有相同的對象(表,sprocs等),但每個指向各自的租戶?如果是這樣,請提及它? – iomca4u

+0

是的,你也可以這樣做。雖然單獨的數據庫可以讓您能夠從SQL Azure中獲得更多的擴展,因爲您可以將其放置在不同的服務器上。無論哪種方式,看看這個鏈接:http://geekswithblogs.net/hroggero/archive/2011/10/05/solving-schema-separation-challenges.aspx編輯我的迴應 – Igorek

+0

@lgorek:感謝您的幫助和投入。 ...是的,我也同意DB分離更好。但現在,由於租戶非常少(少於5人) - 我認爲架構級別的分離可以從頭開始。如果看到增長,那麼將它們分離出來將是任何可能的方式。 – iomca4u