跨数据库的关系和约束

时间:2009-12-23 15:11:05

标签: sql-server-2005

HI那里,

我可以通过哪些方式维护跨数据库实例的关系。我知道DB之间的关系是不好的方法,但我必须这样做。

我正在使用SQL SERVER 2005。

由于 DEE

2 个答案:

答案 0 :(得分:3)

据我所知,这是不可能的。

您的选择是:

  1. 在数据库之间设置复制,以便在本地数据库中提供要与其定义关系的表。但那可能会变得混乱。
  2. 创建一个执行检查的UDF,并将其用作约束。
  3. 触发器。
  4. 但是,这是一个糟糕的想法,你真的应该重新评估一下推动你创建多个数据库的任何推理。

答案 1 :(得分:1)

如果您正在寻找业务解决方案,您可能希望将一个或另一个数据库视为“用于业务流程目的”存在/删除的清算所(a)记录id'ed通过键(b)由特定规则数据表示的可能范围条件。这可能会或可能不会出现在IT标题之下,可能会也可能不会涉及编程。

我当然在回答这个问题时假设约束管理问题足够严重,人们无法在信封背面管理它;我试图尽可能一般地回答这个问题。

这里可能与约束管理相关的编程源代码类型是我建议的......

  • T / SQL

  • 中的触发器和存储过程
  • 验证3GL / 4GL应用程序代码写入数据库

  • 消息数据映射和BRE业务规则引擎及其他类型的服务器系统中的
  • 验证

约束验证检查:

  • 一组单独的键和规则数据

  • 数据的主体

可以设置整个数据集或其中一部分的实时或接近实时的链接,但这在实践中很少发生,原因有四个:

(a)系统的性能,整体系统可靠性,维护和成本问题往往会很快变大;它必须值得做

(b)增加更多系统的整合问题更大

(c)人们可能不知道有必要保持数据库链接进入系统并以他们认为有用但导致连锁问题的方式更新数据;因此整个系统需要更严格的管理流程,这可能很昂贵

(d)延迟数据批量更新通常(尽管本身并非没有问题!)足以满足大多数业务系统的需求

从系统分析师的角度来看,需要在流程中设置足够的检查点来验证数据,足够的同步和/或完整性违规管理步骤需要发生。

修改

用“延迟数据”替换“接近实时”的文字。

修改

将文本“延迟数据”替换为“通过批量更新延迟数据”。

修改

真的将文本“延迟数据”替换为“通过批量更新延迟数据”。