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

 裴潇艳 发布于 2023-01-20 23:05

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

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

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

(Ferrari)-[:CURRENT]->(V3)-[:PREVIOUS]->(V2)-[:PREVIOUS]->(V1)

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

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

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

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

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

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

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有