假设我需要设计一个数据库,该数据库将托管多个公司的数据.现在,出于安全和管理目的,我需要确保不同公司的数据被正确隔离,但我也不想启动10个MySQL进程,用于在10个不同的服务器上托管10个公司的数据.对MySQL数据库执行此操作的最佳方法是什么.

推荐答案

多租户数据库有几种方法.为了便于讨论,它们通常分为三类.

  • 每个租户一个数据库.
  • 共享数据库,每个数据库一个模式
  • 共享数据库、共享架构.租户标识符(租户密钥)将每行与正确的租户相关联.

MSDN有一篇关于pros and cons of each designexamples of implementations的好文章.


Microsoft has apparently taken down the pages I referred to, but they are on on archive.org. Links have been changed to point there.

作为参考,这是original link for the second article

Database相关问答推荐

华为Appcube中的对象字段类型

在 ScyllaDB 中查询 100 亿行(高基数)的效率

创建一个spell check,判断具有合理运行时间的数据库

Android SQLiteno such table异常

在sql server中拆分字符串

SQL 中的 LIMIT 语句使用很普遍?

如何在我的 Rails 应用程序中避免竞争条件?

将 XML 存储在数据库中是否不好?

我应该不断地open()和close() SQL 数据库还是让它保持打开状态?

处理hibernate entities上的数据库视图的优雅方法?

Redis:数据库大小与内存的比率?

显示包含特定表的所有数据库名称

什么时候用R,什么时候用SQL?

SQL Server 自动备份

数据库触发器的命名约定

最小覆盖和功能依赖

您是否应该将自引用表列设为外键?

如何在 SQLServer 数据库的两个实例之间复制数据记录

以可能的数据丢失为代价提高 PostgreSQL 写入速度?

使用 oracle sql developer 从一个数据库复制到另一个数据库 - 连接失败