【发布时间】:2017-06-12 15:31:20
【问题描述】:
我对 Neo4J 完全陌生,我正在努力解决设计/架构问题。
设置
我有一个带有不同节点的给定图表。这可能是一个包含客户、产品、项目、销售等的公司图表(如电影示例https://neo4j.com/developer/get-started/)。此图表可能会不时更改。
在我的用例中,我想使用这个图表,对其进行调整并测试一些场景。例如。我会添加一个新产品,定义一个有责任的新销售人员或提高产品的价格。对于扩展图,我将“提出问题”,或者换句话说,我将使用图算法来提取信息。我所做的更改不应影响原始图表。
要求
- 我不想将我的更改写入原始图表,因为每次原始图表都应该是分析的基础。也是因为不同用户可能同时更改和分析图形。
- 我仍然想使用 Cypher 的强大功能进行分析,因此仅将图表放在内存中是行不通的。
问题
一方面我不想更改原始图表,另一方面我想为特定用户临时添加和更改信息。使用关系数据库,我只需用一个 ID 指向数据的“静态”部分,或者我会在代码中而不是 SQL 中进行计算。
问题
- 有什么最佳做法吗?
- 我可以直接在代码中使用 Cypher(非持久性,直接在内存中的数据上)吗?
- 我是否应该在使用图表时复制它(不是真的, 对吧?)?
- 是否有将用户特定数据链接到静态图表的概念?
我对所有想法、概念和技巧都很满意!总的来说,它更多的是关于图形数据库......到目前为止,Neo4J 是我的首选。
干杯 克里斯
【问题讨论】:
标签: neo4j graph-theory graph-algorithm graph-databases