我需要将从XML文件中检索到的分层数据存储到关系数据库(SQL Server)中 . 数据在XML中具有以下结构:

Item

  • ItemId(唯一标识符)

  • ItemName

  • 描述项目的其他字段

Item Relationships

  • ParentItemId

  • ChildItemId

  • RelationshipType(描述关系的特定于域的信息)

  • 描述关系的其他特定于域的字段

我想将这些数据存储在数据库中,以便查询快速而简单 . 由于关系的更新不会经常发生,我不太关心更新/插入/删除性能 .

我曾考虑过hierarchyid方法 . 然而,除了父和子id之外还有与关系相关的其他字段(即RelatiopnshipType和其他一些),所以这似乎不可行 .

有两个名为Items和ItemRelationships的表怎么样?

  • Items表包含ItemId(主键)和ItemName列 .

  • ItemRelationships包含ParentItemId,ChildItemId,RelationshipType列 .

ParentItemId和ChildItemId是Items.ItemId列的外键 . 这是一个有效的查询结构吗?请记住,ParentItemId可以有多个ChildItemId . 层次结构的深度可以超过10个级别 . 我也很困惑这种方法是否被称为邻接列表或桥接表或其他一些术语?