zoukankan      html  css  js  c++  java
  • 数据存储方案-邻接列表模式

    在程序开发中,我们常遇到用树型结构来表示某些数据间的关系,如企业的组织架构、商品的分类、操作栏目等,目前的关系型数据库都是以二维表的形式记录存储数据,而树型结构的数据如需存入二维表就必须进行Schema设计。

    Adjacency List(邻接列表模式)

    简单的说是根据节点之间的继承关系,显现的描述某一节点的父节点,从而建立二位的关系表。

    表结构通常设计为{Node_id,Parent_id},如下图:

    优点:

    结构简单易懂,由于互相之间的关系只由一个parent_id维护,所以增删改都是非常容易,只需要改动和他直接相关的记录就可以。

    缺点:

    由于直接地记录了节点之间的继承关系,因此对Tree的任何CRUD操作都将是低效的,这主要归根于频繁的“递归”操作,递归过程不断地访问数据库,每次数据库IO都会有时间开销。

    PS:在邻接列表模式的基础上还可以拓展的是平面表,区别是将节点的level当前节点的顺序也放入表中,比较适合类似评论等场景。

  • 相关阅读:
    关于递归的理解
    every few days
    相见恨晚
    VC中自定义消息处理函数的步骤
    wparam和lparam的区别
    VC中新建的类不见了的解决方法
    接连遇到大牛
    老总NB的 romman.sys
    [恢]hdu 1159
    [恢]hdu 1996
  • 原文地址:https://www.cnblogs.com/wade-luffy/p/7728845.html
Copyright © 2011-2022 走看看