【发布时间】:2011-07-05 21:25:39
【问题描述】:
我对您对连接来自不同数据库的两个或多个表的缺陷的想法很感兴趣。我试着举个例子。
假设表 Table1 位于 DatabaseA 数据库中,Table2 位于 DatabaseB 中。
假设我在DatabaseA 中有一个视图,它从Table1 和DatabaseA' 中的一些其他表中提取了一些数据。
这个视图是用来把数据推送到另一个数据库的,我们就叫这个吧,别想了,DatabaseC。
如果我需要来自Table2 的一些数据,我的直觉是在这个视图中直接加入Table2,有点像table1 inner join DatabaseB..table2 on [some columns]
这样做非常简单快捷,但我脑子里有个唠叨的声音一直告诉我不要这样做。我担心的是无法根据Table2 追踪所有对象,因此如果我在那里更改某些内容,我必须非常小心并记住我使用此表的任何地方。所以,有点像打破这个视图(和两个数据库)的 SRP,因为这个视图可以从两个不同的操作中改变(在两个不同的数据库上执行:更改 Table1 或更改 Table2)
我对你的意见很感兴趣。这是个好主意还是坏主意?这种方法会有什么问题(性能方面、维护方面等等),如果你有一个真实的世界经验,这种方法要么是一个大错误,要么是你的救命稻草。
P.S:我在 google 和 SO 上搜索过这个主题,但找不到与此相关的任何内容。我很乐意接受 SO 用户的减分票、重复问题和其他“谴责”,只是为了对这个问题有不同的看法。
P.P.S:我使用的是 SQL Server 2005。
谢谢你,希望我说清楚:)
【问题讨论】:
标签: sql-server database sql-server-2005 database-design