是否有人有将多个相同的SQL server数据库(具有唯一数据)从单独的本地服务器移动到单个基于internet的服务器的经验?
我们目前有10家公司使用我们的Windows应用程序,该应用程序使用SQL Server 2008进行数据存储,但我们发现维护数据库并确保它们备份等是一件令人头疼的事情,因为它们都在单独的本地LANS上。
我们现在正在研究将客户基础增加到40-50个组织的前景,并需要报告所有组织的数据。
如果我们简单地在我们自己的基于互联网的服务器上创建50个相同的数据库,我们可以在不进行太多重新设计的情况下实现这一点,但这是最好的方法吗?
或者,我们是否应该将所有数据库合并为一个数据库,并创建一个额外的列来标识组织,以便他们只能看到自己的数据?
每个组织有2-10名员工,每年输入大约5,000-10000条记录,由20个字段组成,主要是字符和整数,所以不是太大。
任何指导都将不胜感激。
发布于 2009-11-10 21:55:27
最好的办法是让数据库保持独立。我们遇到了类似的问题,需要向客户保证他们的数据不会与其他数据混在一起(以防出现安全问题),这是我们主要关心的问题,尽管将一些客户转移到另一台服务器的能力也很好。此外,对于单独的数据库,您可以对一个客户进行较小的修改,而不会影响所有客户(无论是针对定制的解决方案,还是对于不想升级的不同版本,等等)。
我们创建了一个“全局”数据库来跟踪每个客户的信息(包括数据库名称和他们的数据所在的服务器)。然后,您可以对其执行大多数高级查询,并且很少需要遍历每个单独的客户数据库。
我们还创建了一些脚本/批处理程序,可以对所有(或给定)数据库运行SQL查询,以便可以在不做任何额外工作的情况下快速地对50+数据库运行更新或报告查询。这些脚本绝对值得努力开发,而且可能会有第三方应用程序做同样的事情。
发布于 2009-11-10 21:37:39
您可能会发现,将整个应用程序重新架构为只允许访问由组织列标识的数据会带来更多的开发工作,如果所有数据都未经过彻底测试,则可能会将数据从一个组织泄露到另一个组织。
此外,您可能会发现,在一台服务器上拥有多个数据库可能有助于以后扩展,因为您可以将一些数据库移到另一台服务器上。对于备份,单个维护计划可以备份SQL server上的所有数据库。
从长远来看,我认为这可能是最好的解决方案,而不需要更多地了解数据库和应用程序的执行细节以及随着时间的推移而计划的增长。
发布于 2009-11-10 21:26:11
但是,如果所有数据库都包含一些具有相同数据的通用表,则最好的解决方案是将所有数据库合并为一个数据库,并按新的组织列对每个组织具有不同数据的表进行分区。
https://stackoverflow.com/questions/1707933
复制相似问题