Neo4j 关系
Neo4j relations
我是图形数据库的新手,我只使用过基于 SQL 的数据库,这就是我不知道如何在 neo4j 中实现 m-n 关系的原因。在 MySQL 中,我会有 4 tables - Person, Job, Position, PersonHasJob.
其中 table PersonHasJob 有列 person_id、job_id、position_id,开始于 [datetime]。
基于此,我在 neo4j 中创建了这些 table 作为单独的节点
其中 PersonHasJob 具有我上面提到的每个 属性(不是 ID,而是对象方式)
我看到这个中间节点连接所有东西的输出方式对我来说有点奇怪。
有没有更好的方法来定义我的nodes/relationships?
谢谢。
您的图形模型可能如下所示。但这一切都取决于...
- 制作您的第一个模型(白板或使用箭头等工具https://arrows.app/)
- 测试模型(是否支持您的领域问题)
- 如果不是,回到1。
- 制作一个样本图“实例模型”(可以是whiteboard/arrows或者通过将一些数据加载到neo4j中)
- 测试你的领域问题(通过在你的图表中走动/编写密码查询)
重复直到你有一个模型可以很好地支持你的所有查询(读取和写入)。
您在节点中模拟 table 并作为边连接的起始策略是可以的。很好,这对你来说很奇怪!!当您进入图形世界时,您的整个世界观都会发生变化。遍历比连接更有效和可扩展。
为什么要建立图形数据库?您开发的模式将根据您要解决的问题而有所不同。如果您正在寻找公司之间的协作或创建团队,您可以使用额外的节点和边来增强您的图表。对于工作或公司类型,您可以使用 ontology。等等。有了这些增强功能,您可以选择使用新属性或添加新节点。例如,工作类型 ontology 可以提供您作为 属性 放入员工节点的代码。或者你可以有工作类型的节点,然后是员工和他的工作类型之间的边。后者更健壮。
我是图形数据库的新手,我只使用过基于 SQL 的数据库,这就是我不知道如何在 neo4j 中实现 m-n 关系的原因。在 MySQL 中,我会有 4 tables - Person, Job, Position, PersonHasJob.
其中 table PersonHasJob 有列 person_id、job_id、position_id,开始于 [datetime]。
基于此,我在 neo4j 中创建了这些 table 作为单独的节点
其中 PersonHasJob 具有我上面提到的每个 属性(不是 ID,而是对象方式)
我看到这个中间节点连接所有东西的输出方式对我来说有点奇怪。
有没有更好的方法来定义我的nodes/relationships?
谢谢。
您的图形模型可能如下所示。但这一切都取决于...
- 制作您的第一个模型(白板或使用箭头等工具https://arrows.app/)
- 测试模型(是否支持您的领域问题)
- 如果不是,回到1。
- 制作一个样本图“实例模型”(可以是whiteboard/arrows或者通过将一些数据加载到neo4j中)
- 测试你的领域问题(通过在你的图表中走动/编写密码查询)
重复直到你有一个模型可以很好地支持你的所有查询(读取和写入)。
您在节点中模拟 table 并作为边连接的起始策略是可以的。很好,这对你来说很奇怪!!当您进入图形世界时,您的整个世界观都会发生变化。遍历比连接更有效和可扩展。
为什么要建立图形数据库?您开发的模式将根据您要解决的问题而有所不同。如果您正在寻找公司之间的协作或创建团队,您可以使用额外的节点和边来增强您的图表。对于工作或公司类型,您可以使用 ontology。等等。有了这些增强功能,您可以选择使用新属性或添加新节点。例如,工作类型 ontology 可以提供您作为 属性 放入员工节点的代码。或者你可以有工作类型的节点,然后是员工和他的工作类型之间的边。后者更健壮。