database-design - SaaS 数据库设计 - 多个数据库? split ?

标签 database-design architecture database-schema multi-tenant saas

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它.

6 个月前关闭。




Improve this question




我见过以许多不同方式托管的 SaaS 应用程序。跨多个数据库拆分功能和模块是个好主意吗?例如,将 User 表放在一个 DB 上,将功能/应用特定表放在另一个 DB 上,或者将其他常用共享表放在另一个 DB 上?

最佳答案

查看 Azure SQL 的 Multi-Tenancy SaaS 数据库租户模式,其中详细列出了解决方案和决策标准。
https://docs.microsoft.com/en-us/azure/azure-sql/database/saas-tenancy-app-design-patterns
下一次讨论包括来自曾做过这件事的开发人员的大量反馈。如果可以的话,一般的共识是避免使用多个数据库并自动强制执行仅租户查询。 SQL Azure 提供行级安全性来帮助实现这一点。它也可以在应用程序级别完成。
https://www.indiehackers.com/post/should-i-keep-only-one-database-for-each-customer-in-a-saas-product-2af0af42f4
最后一个想法.. 一开始选择单个数据库,并不排除您以后使用每个租户的数据库。您甚至可以稍后在一个数据库中支持许多较小的客户,而大型或付费客户拥有自己的数据库。但是,从每个租户的数据库开始意味着如果您稍后切换回每个数据库的多个租户,您将承担巨大的迁移成本。

关于database-design - SaaS 数据库设计 - 多个数据库? split ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69128/

相关文章:

mysql - 检查 MySQL 架构更改的进度

php - 更新查询以反射(reflect)规范化数据库

sql - 用户消息数据库架构?

mysql - 同 table 选择好友请求

php - 计费系统最佳实践

design-patterns - 对象属性是否应该填充在构造函数中

安卓升级数据库

mysql - 这两种 MySQL DB Schema 方法中的哪一种对于检索和排序最有效?

处理不同事件的新闻源的数据库设计

perl - 我应该如何使用作业队列 [和 Perl/Catalyst] 最好地构建我的 Web 应用程序?