2011-01-22 299 views
0

尋找良好多租戶數據庫設計策略的參考。 MySql是否具有對多租戶體系結構的內置支持?任何幫助/鏈接/在這方面的參考真的很感激!多租戶數據庫設計

+2

不僅僅是14個問題沒有被接受的答案;也沒有答案,對任何事物(問題或答案)零票。 – 2011-01-22 21:54:06

回答

5

MySQL不支持的模式,所以你應該添加tenant_id每個表除了公共表。然後你應該覆蓋你的ORM庫來自動添加「where tenant_id =?,tenant_id」每個sql。

軌道上的多租戶應用程序的一般信息。

Rails和MySQL的多租戶例如

導軌和PostgreSQL教程。我知道你想要MySQL,但這給你一個很好的看法。

1

設計多租戶應用程序,您必須對數據庫設計的一些選項

  1. 單獨的數據庫:這是最容易的,但資源消耗,MySQL將適合在這個設計,但對於每個租戶你都需要新的數據庫。這對於管理和備份和恢復等操作活動將更加容易,並且可以讓您完全隔離客戶數據。
  2. 共享數據庫,獨立模式:在此方法中,使用一個數據庫服務器,但是需要爲每個新租戶創建新模式。 MySQL不支持這一點。另一種DBMS是PostgreSQL。該解決方案可以實現最佳的資源利用率,並且還可以處理備份和恢復等操作活動。
  3. 共享數據庫,共享模式:正如onurozgurozkan所解釋的那樣,您需要在每條記錄中存儲承租人id,因爲它是共享模式。 MySQL和其他DBMS支持這種方法,但在備份和恢復等操作活動中非常困難,您必須開發一些工具來實現這一目標。如果您有大量的租戶,則不建議使用此方法。