rock_cloud
V2EX  ›  问与答

在数据库中存储有向无环图

  •  
  •   rock_cloud · May 18, 2015 · 6317 views
    This topic created in 4038 days ago, the information mentioned may be changed or developed.
    项目需求,需要在Mysql中存储有向无环图,存储方式应该易于理解,易于查询,例如可以较为容易的查询一个节点的子节点和父节点之类。
    目前我的想法是用一个多值字段存储父节点和子节点,节点ID用逗号分割。
    请问大家有没有什么好办法?
    9 replies    2015-05-18 16:43:35 +08:00
    wy315700
        1
    wy315700  
       May 18, 2015
    无环图不就是树
    shoumu
        2
    shoumu  
       May 18, 2015
    感觉查询起来比较蛋疼,如果能用图数据库就好了
    rock_cloud
        3
    rock_cloud  
    OP
       May 18, 2015
    @wy315700 不是啊~有可能有节点有两个父节点的。
    wy315700
        4
    wy315700  
       May 18, 2015
    @rock_cloud
    看到了 有向图,,

    如果是无向图的话那就是树了,
    wy315700
        5
    wy315700  
       May 18, 2015
    @rock_cloud 我觉得用每一个父子关系都存一条记录比较好吧 方便搜索
    shunai
        6
    shunai  
       May 18, 2015
    无向图就是树,建议采用节点数字编号的形式对每个节点都编号,通过该编号在sql上可以快速地实现找到其所有父子节点
    wodesuck
        7
    wodesuck  
       May 18, 2015 via Android
    @shunai 人家问的是有向图,不是树是DAG
    存一个边表吧
    Septembers
        8
    Septembers  
       May 18, 2015   ❤️ 1
    wudikua
        9
    wudikua  
       May 18, 2015
    可以试试cayley
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2872 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 04:56 · PVG 12:56 · LAX 21:56 · JFK 00:56
    ♥ Do have faith in what you're doing.