相关疑难解决方法(0)

Neo4j /保持节点变化历史的策略

让我们假设一个处理汽车的图表.
每个都Car可以随着时间的推移而发展,我需要跟踪这些变化.
(为了能够追踪一些不一致的进化等...)

我想过实现一个写时复制机制(就像LinkedIn似乎那样),这意味着Car每当其中一个Car属性发生变化时创建一个完整的新节点.

我最终会得到一个这样的图表:

(Ferrari)-[:CURRENT]->(V3)-[:PREVIOUS]->(V2)-[:PREVIOUS]->(V1)
Run Code Online (Sandbox Code Playgroud)

我特别感兴趣的是检索最新版本,所以听起来不错.

但是,如何处理最初的CarUUID?

Car的UUID(这是一个易于查询的索引属性)是通过库(Apache)自动生成的.
我想如果我为每个Car版本保留相同的初始UUID ,这可能会导致一些冲突:" 检索Ferrari其UUID为123 "=>返回多个结果.3个结果,如果有3个版本.

为每个版本生成新的品牌UUID是否安全有效?

因此,我知道在这种情况下,检索特定版本的唯一方法是遍历图形的相关部分直到正确的部分,而不依赖于对初始UUID的简单查询; 通过简单的Cypher查询,这似乎仍然非常高效和简单.

我想保留生成的UUID,因为不建议使用潜在的"可猜测"REST URL(使用资源的UUID).
实际上,我可以将UUID作为Car模型与其版本之间的组合,但似乎不够"安全"且我的URL上具有可见性.任何恶意的人都可以通过更改URL轻松地设法检索旧版本.

uuid database-design graph neo4j graph-databases

3
推荐指数
1
解决办法
1118
查看次数

标签 统计

database-design ×1

graph ×1

graph-databases ×1

neo4j ×1

uuid ×1