我要求开发一个跟踪某个项目(或多个项目)移动的应用程序。为了更好地演示应用程序必须执行的操作,我绘制了一个diagram (simplified abstraction)。
由于我从未使用过关系数据库以外的任何数据库,我真的不知道是否可以使用图形数据库来解决这个问题。
系统必须回答这些问题:
非常感谢任何帮助和建议 感谢
答案 0 :(得分:0)
在Neo4j中,一切都是节点或关系。因此,思考一下是有用的:我的节点和关系是什么?
例如,这里可能是每个“笔式驱动器”,“人”和“位置”都是一个节点。像“走路”或“给”这样的动词就是你的关系。
在这个模型中,您可以使用“Cypher”查询诸如“通过关系遍历给我连接到笔节点的所有位置节点”之类的内容。或者,说“从所有人员节点开始并返回与笔驱动器节点具有给定关系的节点,该笔式驱动器节点没有连接回起始人节点的给定关系。”
这种丰富的图形查询语言为您提供了免费的最短距离等优秀算法,因此您可以在事务记录之外确定是否使用最佳路径将笔驱动器从A转到B。但正如您在上面所看到的,“关系连接”不会产生简单的查询或其描述。
当谈到数据库设计时,当模型在精神上进行映射变得麻烦时,开发也会很痛苦。根据您计划查询的方式设计数据库。如果您无法根据Neo4j轻松解释这些查询,那么Neo4j可能不是最合适的。