javascript - 如何将树数据保存在数据库中进行分析

标签 javascript mysql database structure treemap

我打算用 d3js 制作 web 应用程序。它将有关于某物的树状图并且能够由用户添加/删除。我想知道如何在数据库中保存树数据。 数据可以是

var treeData = [
  {
    "name": "Top Level",
    "parent": "null",
    "children": [
      {
        "name": "Level 2: A",
        "parent": "Top Level",
        "children": [
          {
            "name": "Son of A",
            "parent": "Level 2: A"
          },
          {
            "name": "Daughter of A",
            "parent": "Level 2: A"
          }
        ]
      },
      {
        "name": "Level 2: B",
        "parent": "Top Level"
      }
    ]
  }
];

source,target
A1,A2
A2,A3
A2,A4

实际上,我使用哪种结构并不重要,因为数据可以在我的 mysql 数据库中以“TEXT”形式保存自己。但我想分析数据库中的树数据,例如

select * from treemap where secondChildren = 'stackoverflow';
select * from treemap where root = 'c++' and lastChildren = 'java';

由于我的树状图将由用户动态创建,因此我无法创建与子节点一样多的字段。你们有什么想法吗? :)

最佳答案

树关系很难存储在 rdbms 中。查看图形数据库。这些是专门用来表示数据库上的图形的。这些应该可以缩放,因为树也是一个图形,这可能是一个不错的选择。我最近参加了一个关于图形数据库——Neo4j——的演讲,它非常有趣。它(或任何其他图形数据库)相对于 rdbms 的主要优势是它可以在图形中存储关系并提供一种简洁的语言来指定关系和查询它们。

http://neo4j.com/

关于javascript - 如何将树数据保存在数据库中进行分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28200083/

相关文章:

mysql - Django 单元测试全文搜索

java - JDBC 和 utf8mb4 编码表情符号 🔥

mysql - 添加论坛 : sharing a database or creating a new one?

database - 什么技术可以帮助我快速搜索、过滤和分组广泛数据集中的任何列?

javascript - 如何在javascript中将哈希表转换为数组

javascript - 通过外部触发将数据推送到web socket

mysql - mysql 中无重复的多次插入/更新

mysql - 如何在node.js中从mysql获取数据

javascript - 在javascript中的另一个方法中调用方法?

javascript - Javascript 新手,需要 HTML5 音频帮助 "playlist"