實作saas多租戶方案比較
看到一篇比較多租戶資料隔離方案的文章,總結挺不錯。其實大部分内容在我前幾年寫的文章都有。
文章翻譯自:
https://blog.arkency.com/comparison-of-approaches-to-multitenancy-in-rails-apps/
多租戶意味着同一個應用上有不用的使用者隔離。這是非常典型的saas模型。你可以用不同的隔離級别來實作多租戶。
1. 行級别: 在每個資料庫表裡添加tenat_id字段,然後在每個查詢語句也添加相應的tenant_id
2. schema 級别: 每個租戶有在同一個資料庫内自己獨立命名空間。 可以容易使用 PostgreSQL schemas 來實作. 後續會介紹使用Mysql如何實作。
3. 資料庫級别:每個租戶建立獨立的資料庫。 非常少用到。
下面是比較這幾種實作方式的優缺點:
行級别 | schema級别 | db級别 |
---|---|---|
租戶建立時間 | ⚡️ 新增一條記錄 |