2012-09-20 58 views
0

精簡版共享和每個租戶表在同一個數據庫

它是確定有一些共享的表,並在同一個數據庫中每個租戶的表?

加長版:

我們(我和一些非計算器-ERS)正在設計一些多租戶SaaS的。

我們正在使用共享數據庫和共享架構架構,每個表都有一個tenant_id列來區分租戶的數據。 對於小數據集,就像在我們的'用戶'表中(如果我們有1000個租戶,每個用戶有10個用戶,= 10,000行),這就好了。

但是,有些表格會變得非常大。例如,'文件'表。每個租戶可能有一百萬個文件,其元數據需要存儲在數據庫中。每個擁有1,000,000個文件的租戶創建一個1bn行表。 我的擔心是,這將是緩慢的操縱,並且我想砍伐由租戶文件表。

問題:

  1. 是否可以接受/最好有一些共享的表,和其他每個租戶 表,如files_<tenant_id>

    我想對諸如可伸縮性,備份,維護等事情進行批評。

  2. 處理此類大數據的其他選項有哪些?
  3. 這仍然被認爲是共享模式?
+0

您必須將文件保存在表中嗎?您有沒有辦法讓租戶/用戶將它們置於本地文件夾中?這將是一個更簡單的過程 –

+0

@BhrugeshPatel這些文件將存儲在文件系統中。只需將每個文件的元數據(如id,路徑,權限等)存儲在數據庫中即可。 –

+0

即使你說租戶打破他們,你不能爲每個租戶創建新的表。如果你按文件類型分割它們,搜索將是一個痛苦。雖然我非常懷疑你的桌子上會有10億行。但是,如果你必須打破它們,那麼可能會按姓氏設置......即對於表1中的A-H,表2中的I-S以及表3中的其餘部分或類似的東西。 –

回答

0

哪個db?你的意思是數據庫的方式MySQL意味着數據庫或模式?

真的,一個房客會有1M的文件?這將是更容易分裂他們租戶每分貝

我們有tenant_id樣式系統,如果我要再做一次,我會去一個租戶每架構。

相關問題