Sql server 从多个数据库中选择和聚合数据
我在寻找一些建议,因此,如果这是错误的部分,我将删除并在DB管理员中发布,如果这是更合适的,我深表歉意 我有一个管理法律案件的应用程序。每家律师事务所都有自己的数据库,用于管理自己的案件和其他业务流程。因此,总共可能有数百个数据库 一个公民可能有许多律师事务所的案件。其中一些病例处于生命的不同阶段,例如见下文 我希望我的应用程序向用户显示他们所有案例的汇总,按阶段和状态进行汇总。因此,对于用户来说,它看起来就像来自电子邮件客户端的东西:Sql server 从多个数据库中选择和聚合数据,sql-server,database,database-design,cloud,sql-server-2014,Sql Server,Database,Database Design,Cloud,Sql Server 2014,我在寻找一些建议,因此,如果这是错误的部分,我将删除并在DB管理员中发布,如果这是更合适的,我深表歉意 我有一个管理法律案件的应用程序。每家律师事务所都有自己的数据库,用于管理自己的案件和其他业务流程。因此,总共可能有数百个数据库 一个公民可能有许多律师事务所的案件。其中一些病例处于生命的不同阶段,例如见下文 我希望我的应用程序向用户显示他们所有案例的汇总,按阶段和状态进行汇总。因此,对于用户来说,它看起来就像来自电子邮件客户端的东西: Cases (15) Open (10) Und
Cases (15)
Open (10)
Under Examination (4)
Escalated (6)
Closed (5)
要获得这些数字,我必须从每个数据库中为该用户有案例的每家律师事务所选择他们的所有案例。在伪代码中,我必须:
SELECT
c1.Title, c1.Stage
FROM
[@DatabaseName].dbo.Cases c1
WHERE
c1.CustomerID = @CustomerUserID
它必须对每个数据库(可能超过50个)执行此操作,然后将所有结果合并在一起,以分阶段获得该公民拥有的所有公开案例的总数
我能想到的使这更简单的唯一其他方法是不使用多坦能体系结构。也就是说,在一个数据库中有一个案例表,该数据库有一个列来标识它所属的律师事务所。问题是,如果应用程序扩展到其他领域,如人力资源或财务等,此解决方案将无法很好地扩展。这将意味着我必须将所有律师事务所数据存储在一个数据库中,这将杀死我的服务器和资源
有更好的方法解决这个问题吗?检查
这提供了使用碎片管理数据库处理多个碎片的API
你可以为每家律师事务所创建一个分片。我不能使用Azure或.NET sadlySee:Hay,企业模型模式第18章:刑事司法。更多的用于警察案件,但可能会有所帮助。