首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新闭包表的最佳方法是什么?

更新闭包表的最佳方法是什么?
EN

Stack Overflow用户
提问于 2011-04-08 23:10:10
回答 1查看 2K关注 0票数 5

我有一个使用邻接表方法关联记录的表(表A),还有一个使用闭合表关联相同记录的表(表B)。它们都捕获相同的图形,因此它们都需要保持同步。

问题是,更新闭包表的最佳方法是什么?

在我看来,有三种选择:

  1. 触发装置。在A处的INSERT/UPDATE/DELETE上,运行计算新闭包的sproc。Cons:更改为A,会导致长时间的同步(锁定?)操作;可能死锁(?)
  2. 应用程序代码。缩小A中的更改以添加/更新/删除方法(例如。(存储库模式),并通过对计算新闭包的sproc的调用来重载它们。Cons:到DB的额外往返;如果另一个头同时以相反的方式修改A或B,则可能存在完整性问题;如果另一个应用程序决定修改A而不是B,则可能存在完整性问题。
  3. 背景更新者。编写一个持续查找A的更新并对闭包表进行相应更新的辅助进程。Cons:复杂(用于编写和管理的额外服务);没有同步的窗口。

即使没有“最佳”的选择,任何关于权衡的想法将是最感激的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-08 23:25:17

如果您的层次结构与我所处理过的大多数层次结构一样是静态的,那么我可能会使用触发器。确实取决于更新频率和读取负载。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5601658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档