【发布时间】:2023-03-05 19:40:05
【问题描述】:
您好,我想在 neo4j 中表达以下关系,我想找到最佳方式,或者可能不是最佳方式,但我可以通过不同的方式以一种好的方式做到这一点。案例如下:
- 我有一只动物
- 动物可以放在笼子里或空旷的田野里。
- Animal 和 Cage 之间的关系在一段时间内有效。
时间段是一个非常重要的品质,因此在某种程度上它是模型的一等公民。我想知道的是,如果我将其表达为 Neo4J 模型,有几种方法可以做到这一点:
方法 1。
- 动物是一个节点。
- 笼子/开放空间是一个节点。
- 时间段成为“已分配”关系下的属性。
方法 2。
- 动物是一个节点。
- 时间段是一个节点。
- 笼子/开放空间是一个节点。
那么关系会是这样的。 *动物 --FOR--> 时期 --Assigned-->CAGE
模型应该能够回答哪些问题。
如果动物都以相同的时间间隔放在同一个笼子里,我们应该能够收集信息。问题是一个开放空间可能包含许多笼子,所以我们想知道两只动物是否曾经在同一个开放空间内共存。
【问题讨论】:
标签: java graph neo4j data-modeling graph-databases