Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 数据库中的动态层次结构:RDBMS与基于图形的数据库(Neo4j)_Sql_Jpa_Neo4j_Nosql - Fatal编程技术网

Sql 数据库中的动态层次结构:RDBMS与基于图形的数据库(Neo4j)

Sql 数据库中的动态层次结构:RDBMS与基于图形的数据库(Neo4j),sql,jpa,neo4j,nosql,Sql,Jpa,Neo4j,Nosql,我需要在项目中实现动态层次结构。一种可能的解决方案是使用图形数据库NoSQL解决方案,如Neo4j。我在RDBMS中设计的图形实现。 在这个解决方案中,我设计了一个表,它本身具有多对多关系。 给出了一个例子。 我有一个表(表a)定义了不同的实体,另一个表表B定义了实体的类型,表B本身有一个多对多关系,定义了不同实体类型之间的关系。这存储在一个连接表,表C中。类似地,表A自身具有多对多关系,以定义表C中定义的不同关系的实例。 在Java中,我只使用了两个类来实现这个结构 在我看来,这种多对多的关系

我需要在项目中实现动态层次结构。一种可能的解决方案是使用图形数据库NoSQL解决方案,如Neo4j。我在RDBMS中设计的图形实现。 在这个解决方案中,我设计了一个表,它本身具有多对多关系。 给出了一个例子。 我有一个表(表a)定义了不同的实体,另一个表表B定义了实体的类型,表B本身有一个多对多关系,定义了不同实体类型之间的关系。这存储在一个连接表,表C中。类似地,表A自身具有多对多关系,以定义表C中定义的不同关系的实例。 在Java中,我只使用了两个类来实现这个结构

在我看来,这种多对多的关系并不总是多对多的关系。 有时是一对多,有时是一对一

首先,无SQL图形数据库是否比关系数据库更适合我的需求,因为我计划测试的数据将有十万条记录


第二,,如果RDBMS解决方案更好,那么是否有办法在联接表表C中包含一个属性,该属性定义了关系的多重性,即是一对多还是多对多还是一对一关系?

是的,您可以在两个节点之间的每个关系上放置任意数量的属性,从无到有。您也可以在关系上拥有不同的属性,也可以拥有不同的关系类型

树是图形数据库的自然结构。它可以管理任意深度和宽度的树

可以快速插入树数据,请参见

在树中查找数据很容易用可变长度路径表示

Rik对使用这种层次结构来管理零件清单和价格做了详细的研究