inheritance - 如何在 Neo4j 中使用类型层次结构?

标签 inheritance graph neo4j polymorphism data-modeling

有没有办法在 Neo4j 中建模类型层次结构?例如,如果我想构建汽车的类层次结构,我可能有一个“汽车”的基本类型,然后有扩展它的子类,如“SportCar”等。

我希望能够创建“SportCar”的实例,但运行查询以获取所有“Car”。这可能吗?如果是这样,技术是什么?

我认为我想要做的是创建一个“标签层次结构” - 但我认为neo4j不支持。

最佳答案

保罗,

首先,我建议您阅读“Graph Databases”,这是一本免费的 O'Reilly 电子书,网址为 this link .

作为快速回答,有很多方法可以做这种事情,最佳选择取决于您要解决的问题。一种方法是构造一个“汽车”节点,然后将您的“SportCar”节点与具有类型化关系的“汽车”节点相关联,例如

CREATE (m:Car)
MATCH (m:CAR) WITH m CREATE (n:SportCar)-[:IS_A]->(m)

并创建其他类型的汽车,并将它们与汽车节点相关联。

然后您可以通过以下方式找到所有汽车
MATCH (m:Car)<-[:IS_A]-(n) RETURN n

您也可以只在每个节点上放置 Car 和 SportCar(以及 LuxoCar 等)标签。这只是众多方法中的两种。

恩典与平安,

吉姆

关于inheritance - 如何在 Neo4j 中使用类型层次结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873067/

相关文章:

c++ - 是否多次调用多个继承的构造函数?

c++ - 我无法创建公共(public)继承类 - 构造函数 C++ 有问题

最短加权路径算法 - 频繁变化的边

image - 是否可以在 DOT 语言图的节点内包含图像?

python - 使用 Django-graphos 显示图形 - django 1.6

java - Neo4j:通过 Java API 或 Cypher 显式悲观锁定

java - Java 中的继承练习

C++继承: Pass sub-class to a function expecting base-class and get sub-class behaviour

mysql - 将图形数据库加入 RDBMS?

nosql - 什么是已知的最大Neo4j集群?