我打算用 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 的主要优势是它可以在图形中存储关系并提供一种简洁的语言来指定关系和查询它们。
关于javascript - 如何将树数据保存在数据库中进行分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28200083/