【发布时间】:2013-09-10 00:23:50
【问题描述】:
我正在对类似 Salesforce 的应用程序的最佳数据库设置进行一些研究(Web 应用程序包含多个 10.000 客户的敏感数据,每个客户可以有 多个用户 帐户)。
我的想法是,拆分数据库设置(每个客户使用不同的数据库)是最好的,因为它是确保数据在安全性方面真正隔离的唯一方法,而且因为它不仅仅是多客户,而是每个客户客户可以有多个用户登录以处理数据。但是...拥有一个包含 10.000 个“小型”数据库的数据库实例真的可以吗?
我对共享架构设置并没有太多感觉,因为您最终会得到成千上万个表,这似乎不太容易管理。
在每个表中只使用一个 customerID 列的 1 个大型数据库设置似乎最容易实现,但并不十分安全……而且我认为连接表将是一项艰巨的任务。
您对这种情况有何看法?从可扩展性和安全性的角度来看,单独的数据库方案对我来说似乎是最好的......但我知道什么:D
谢谢!
【问题讨论】:
-
您不必使用单个实例。如果您愿意,您可以在 100 个不同的服务器上运行 100 个不同的实例。你的决定基于研究和测试,而不是你的感受和假设。感觉和假设不能很好地扩展。
-
哪个数据库?例如,mysql“数据库”与 postgres“数据库”不同。
标签: database database-design salesforce multi-tenant