我是唯一一个查询多个数据库的人吗?

经过对ruby on rails和多个数据库连接的大量阅读后,似乎我找到的东西不是那么多人做的,至少不是ror。 我习惯于查询许多不同的数据库和模式,并为报告或一个无缝页面提取信息。 因此,用户无需登录到多个不同的系统。 我可以在一个或两个网页上创建一个包含所有系统的页面。

这在网络和数据库驱动的设计中不是正常现象吗?

编辑:这是因为我的所有原始代码都是经典的asp吗?

我真的认为大多数ORM设计师似乎并不认为用户可能想要访问多个数据库。 这似乎是ORM世界中非常常见的限制。

我们的客户网站运行3个数据库,所以我这样做。 实际上,我将所有内容都集中在一个中央数据库的视图中,然后连接到其他数据库。

我从未认为这是“正常”行为。 我猜大多数时候你会为一个系统设计并反对它。

编辑:只是详细说明,我们使用Linq to SQL作为数据层,并根据数据库视图定义对象。 这样我们就可以使报表和应用程序代码保持相同的数据模型。 设置Linq实体还有一些额外的工作,因为您必须手动定义主键并设置关联…但是到目前为止它已经certificate是值得的。 我们尝试使用Entity Framework进行此操作,但在设置适当的关系并且不得不放弃时遇到了很多麻烦。 有趣的是我曾经认为entity framework应该被设计用于像我们这样的更高级的场景……

在应用程序的工作流程的单个部分中访问多个数据库并不罕见。 但是,在我所做的每一个实例中,都是通过几个Web服务调用来执行的,这些调用除了其他function之外还包含了有问题的数据库。

据我所知,我没有需要一次直接访问多个数据库并将结果合并到一个报告中。

我在企业门户网站中看到过这种架构,其中大量数据通过不同的数据源引入。 门户网站的重点是将孤岛系统结合在一起 – 用户可能不希望孤立地使用大量系统(特别是如果他们必须签署每个系统)。 在这种情况下,这是正常的,特别是如果它是一家快速扩张并拥有大量异构系统的大公司。

在你的情况下,这是否是正确的做法取决于你为什么有这些单独的数据库。

使用ORM可能有点困难。 但是,它可以做到。 根据需要从各种数据库中拉出对象,然后将它们用作复合体来创建一个新对象,该对象是所需的实际对象。 如果您可以跳过进程的ORM部分,则可以直接查询数据库并直接构建对象。

从两个数据库中提取数据并编译报告并不罕见,但由于任一数据库的查询引擎都无法优化跨数据库查询,因此OLTP系统通常使用单个数据库来保持应用程序的性能。

如果您从头开始构建系统,则建议不要这样做。 如果您正在使用一个您没有设计的系统,那么没有太多选择,这并不罕见(这是“有机”和“计划”增长之间的区别)。

不计算master各种测试实例,我定期点击九个数据库。 是的,我inheritance了它,是的,“经典”ASP占据了显着位置。 当然,所有这些混乱的“睿智”设计师早已不复存在。 我们正在以更安全的方式更快地取代它。

我认为,如果你正在构建一个新系统,并继续添加数据库并达到两三个数据库的点,那么可能是时候重新考虑你的设计了。 OTOH,如果你从多个不同的系统聚合数据,那么,不,这并不奇怪。 根据您所需的时间,以及您在问题上投入硬件的预算,以及如果您的数据大部分是静态的,这对于“报告服务器”来说是一个很好的方案,它会定期从Live服务器中提取数据。