我正在开发一款定制的CRM解决方案,将通过Web/SaaS模式销售。我预计会有数十个或数百个客户使用此解决方案。我将使用MS SQL作为数据库引擎。
选项1是使用单个数据库,在表上包含一个TenantId列、适当的索引和在每个数据库访问中使用'where tenantId={...}'。
选项2是为每个客户创建独立的数据库,避免了需要使用TenantId和where子句。
我预计每个客户将有数十万条记录,而不是数百万条。
就我所知,无论我选择哪个选项,都将有总数据页数。决策似乎集中在SQL是否更擅长管理多个数据库,还是单个带有TenantId和索引的数据库。最初该解决方案将在单个数据库服务器上运行,但最终将迁移到SAN。
有人对此有什么看法吗?
选项1是使用单个数据库,在表上包含一个TenantId列、适当的索引和在每个数据库访问中使用'where tenantId={...}'。
选项2是为每个客户创建独立的数据库,避免了需要使用TenantId和where子句。
我预计每个客户将有数十万条记录,而不是数百万条。
就我所知,无论我选择哪个选项,都将有总数据页数。决策似乎集中在SQL是否更擅长管理多个数据库,还是单个带有TenantId和索引的数据库。最初该解决方案将在单个数据库服务器上运行,但最终将迁移到SAN。
有人对此有什么看法吗?