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

时间:2009-07-13 20:08:02

标签: ruby-on-rails

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

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

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

8 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

在应用程序工作流程的单个部分中访问多个数据库并不罕见。但是,在我完成的每个实例中,都是通过几个Web服务调用来执行的,这些调用包括有问题的数据库。

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

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