将分层数据存储在数据库中

时间:2015-03-01 09:53:09

标签: sql sql-server database hierarchy

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

项目

  • ItemId(唯一标识符)

  • ITEMNAME

  • 描述项目的其他字段

项目关系

  • ParentItemId

  • ChildItemId

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

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

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

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

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

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

  • ItemRelationships包含ParentItemId,ChildItemId,RelationshipType列。

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

0 个答案:

没有答案