【发布时间】:2018-03-12 19:27:49
【问题描述】:
我正在将旧的国家/地区/位置数据库结构重构为层次表。
我将使用新表的主键和自引用 ParentID 列(在主键上)作为 hierarchyid 列的基础。
因此我的桌子看起来像:
PK 名称 ParentID HierarchyID
1 个世界 NULL /
2 英国 1 /1/
3 维冈 2 /1/2
我的问题是:当创建记录或更改记录的父级时,其他人实施了哪些方法来使 hierarchyid 列保持最新?
注意;我正在使用 LINQtoSQL(我使用计算的 hierarchyid.ToString() 列来公开代码中的沿袭,加上存储过程来为我提供 hierarchyid 查询的性能优势)。
对于插入/更新管理:
我考虑过为我的新表覆盖 LINQtoSQL 中的插入/更新过程。
我考虑过使用存储过程来管理更新/插入新记录。
我考虑在插入/更新后使用递归触发器来执行基于 ParentID 的更新。
但是,我还没有决定要走哪条路!
有没有人用过这些方法来管理hierarchyids?有没有更好的方法我没有考虑过,或者我错过了一些非常明显的东西!!?
【问题讨论】:
标签: sql-server-2008 linq-to-sql hierarchical-data