我正在SQL Server 2008 R2中设计一个多客户端数据库(思考SAS)。在我在这个论坛的研究中,我发现从长远来看(当性能成为一个问题时),首选使用不同的数据库来分离客户数据。
但是我想知道在短期内(以及快速启动),通过在同一个数据库中创建不同的模式来隔离客户端特定数据是一个好主意吗?
答案 0 :(得分:4)
此类应用的术语是“多租户”架构。 SO有一个多租户标签。让它成为你的最爱之一。
多租户架构的范围从“无共享”到“共享一切”。在频谱的“无共享”端,您为每个租户构建一个数据库。在“共享一切”结束时,租户共享每张桌子;每行都有一个租户标识符,告诉您该行属于谁。
在这两者之间,您会找到每个租户一个模式。
this SO answer中有关成本,数据隔离以及保护,维护和灾难恢复之间权衡的更多详细信息。
答案 1 :(得分:2)
我的箴言说不。您在快速启动时或在短期内通过您提出的方法获得了什么? 最好从头开始养成良好习惯:使用模式和默认值保存更新的脚本。当其他客户需要新数据库时,您就可以开始使用了。更不用说您的客户端代码只需要在没有任何其他问题的情况下选择正确的连接