在我的项目中,我有一个用于所有内容的数据库。我希望它分成两个数据库。具有查找值的静态表将存储在一个 DB 中,而另一个 DB 将具有包含动态数据的表。我的问题是我将如何在这两个数据库之间使用外键约束。有人可以帮助我并建议一种继续进行的方法,如果我提供了相同的示例,则更好。
我想过对表使用同义词,然后对同义词进行约束。但后来我才知道同义词不能用于约束。
我需要维护来自两个数据库的表之间的关系,因为问题与更新有关,在新版本中,我只想更新查找表,同样我想拆分我的数据库。
罗宾:
如果您想在物理上分离易失性和静态数据,我建议您查看文件组功能。(向下滚动到该网页的中间以获取相关信息。)
文件组允许您对表进行分组。这使您可以更轻松地控制它们的物理位置(例如,经常使用的数据可以放在快速的 SSD 上,而其他数据可以放在较慢的硬盘上),控制读/写访问(可以将文件组标记为只读) 并改进备份/恢复方案(可以备份或恢复文件组)。由于所有表都在同一个数据库中,无论文件组如何,声明性引用完整性(DRI,也称为“外键”)仍然有效。
如果您坚持使用不同的数据库,您将无法使用外键,而必须使用不同的方法。这意味着编写您自己的触发器(或者可能是过程)。编写自己的代码意味着额外的工作,该代码中总是存在错误的可能性,并且触发器的性能通常比 DRI 差。使用不同的数据库还有其他负面影响,最明显的是安全性(您需要管理的数量是其两倍)和时间点恢复(在两个数据库之间获得一致性比在一个数据库之间获得一致性更难)。这些事情今天可能看起来并不重要,但是:
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |