使用单一架构的多个客户端数据库 - 可能吗?

时间:2013-01-02 12:16:22

标签: sql sql-server sql-server-2008 multi-tenant

我是SQL Server 2008的新手,但读过有关Schemas的内容后,我有了这个问题。

目前,对于我们拥有的每个新客户端,我必须手动创建一个新数据库,然后从现有数据库导入所有对象(表/视图/存储过程等)。现在,只要开发人员有任何更新(例如,表结构,存储过程中的更改等),就必须在所有数据库中进行更改。我厌倦了使用DBComparer来修复数据库中的差异。

是否可以拥有一个包含所有表/存储过程/视图的“主模式”?这样所有“客户端数据库”都可以引用此“主模式”,但仍然是能够毫无问题地维护自己的数据。

2 个答案:

答案 0 :(得分:0)

不,这是不可能的。 Schemata存在于数据库中。

多个客户端数据库SIMILAR Schema,是的,但您必须逐个升级。 Schema不在master中 - 它存在于每个数据库中,并且无法更改。事实上,每个Schema都是完全独立的,你可以在一个数据库中拥有01个“相同的内容”Schemata。

答案 1 :(得分:0)

可以使用单个“主”模式。可能可能拥有这个“主”架构,并且仍然让每个客户端维护自己的数据而没有任何问题

您所看到的是一种多租户架构。微软的Multi-Tenant Data Architecture是对这些问题的一个很好的介绍。

This SO answer概述了您需要考虑的各种权衡因素。