数据结构:关于树型Tree菜单数据表结构SQL

于树型列表、树型菜单,我们无需另外创建一个关系表来存储它们的节点关系。我们可以把关系建在同一张表中,如何来表示节点与节点之间的关系,可以参考如下的表结构:



Property Name  Data Type  Description
UniqueID int 这个节点树的唯一识别码。正如我们期望的树型结构来储存在关系型数据库,它在整个树型结构上是主键/自动递增键值,所以我们会使用一个整数这里。如果我们正在创造一个新的TreeNode对象尚未与一个唯一的标识符,这个值将是零。
ParentID int 用于识别的父节点的对象存储的唯一ID。编号零表明节点没有父(即它是一个根节点) 
Name string 一个文本值(不一定是唯一的)是与此相关的节点名称。
Children ArrayList<TreeNode> 收集的TreeNode对象的子节点。不一定所有的子节点都会包含储存在我们的关系型数据库,这里只是为了便于查询。



建立好这张实体表,包含节点关系,我们取得树型节点的时候首先取得Root根节点,就是ParantID为0的节点,然后取得它的UniqueID并作为ParentID来查询它的下一级节点,以此类推来生成整个树型结构。

当我们查询当前节点有多少子节点的时候,我们可以从Children字段中提取TreeNodes Array List去作为查询条件,查询出当前节点的所有子节点。

你可能感兴趣的:(数据结构,sql)