我对您从不同数据库加入两个或多个表的陷阱感到兴趣.我会举个例子.
假设表Table1位于DatabaseA数据库中,Table2位于DatabaseB中.
假设我有一个看法,在DatabaseA中,从Table1中提取一些数据,并在DatabaseA中提取一些其他表.
该视图用于将数据推送到另一个数据库,让我们将它们称为DatabaseC.
如果我需要表2中的一些数据,我的本能就是直接在这个视图中加入Table2,就像这个table1的内部连接DatabaseB..table2在[some columns]
这样做是非常简单快捷的,但是我头脑里有一个.叨的声音,不断地告诉我不要这样做.我的担心是无法根据表2跟踪所有的对象,所以如果我在那里改变一些东西,我必须非常的小心,记得我使用这个表的任何地方.所以,像这个视图(和两个数据库)的SRP类似,因为这个视图可以从两个不同的动作(在两个不同的数据库上执行:更改Table1或更改Table2)
我对你的意见很感兴趣这是个好主意吗?这种方法的问题是什么(性能明智,维护明智等等),如果你有一个现实世界的经验,这种做法或者是一个大错误,或者是一个救命的人.
P.S:我在google和SO上搜索过这个主题,但找不到与此相关的任何内容.我会很乐意从SO用户那里得到反对票,重复的问题和其他“谴责”,只是对这个问题有不同看法.
P.P.S:我正在使用sql Server 2005.
谢谢,希望我自己清楚:)