我对您加入来自不同数据库的两个或多个表的陷阱感兴趣.我试着举个例子.
假设表Table1位于DatabaseA数据库中并Table2位于DatabaseB.假设我有一个视图,DatabaseA从中抽出一些数据Table1,以及其他一些表格DatabaseA.
这个视图用于将数据推送到另一个数据库,让我们打电话给这个,这是一个非常想象的DatabaseC.
如果我需要一些数据Table2,我的直觉是直接加入Table2这个视图,有点像这样table1 inner join DatabaseB..table2 on [some columns]
这样做非常简单快捷,但我脑子里有一种唠叨的声音,一直告诉我不要这样做.我担心的是无法追踪所有对象Table2,所以如果我在那里改变了一些东西,我必须非常小心并记住我使用这张桌子的所有地方.所以,有点像打破这个视图(和两个数据库)的SRP,因为这个视图可以从两个不同的动作改变(在两个不同的数据库上执行:更改Table1或更改Table2)
我对你的意见感兴趣.这是一个好主意还是坏主意?这种方法会出现什么问题(表现明智,维护明智等等),如果你有真实的世界经验,这种方法要么是一个大错误,要么是为你节省生命.
PS:我在google和SO上搜索了这个主题,但找不到与此相关的任何内容.我很乐意接受来自SO用户的减号,重复问题和其他"谴责",以便对这个问题有不同的看法.
PPS:我正在使用SQL Server 2005.
谢谢你,希望我明白自己:)