我创建的Microsoft SQL服务器最初只服务于一个客户端,但我现在希望拥有多个服务器(如果事情进展顺利,最多可达数千个)。每个客户端的整个结构都是相同的,每个表中的数据只是客户端特定的。
我正在考虑将ClientID添加到几乎所有表中,并在所有函数中引用它(基本上是每个语句上的ClientID = @ClientID)。以及为每个新客户端获得新条目的Clients表
另一种方法是创建数据库[Client_Name]脚本,只要新客户端加入服务器以创建另一个客户端特定数据库及其所有相关结构和过程,就会触发该脚本。
这两种方案都有明显的优势吗?
答案 0 :(得分:3)
关于如何构建此类数据库的决定不应仅针对性能问题。事实上,这可能是最不重要的问题。有些事情需要考虑:
通常,单个数据库的性能会更好(想想占用内存的半填充数据页)。使用单个数据库(管理多个客户端数据库很麻烦)可以更轻松地进行维护和开发。但是对应用程序的实际要求应该是推动这样的决定。