相关疑难解决方法(0)

Neo4j如何建模时间版图

我的部分图表具有以下架构:

在此输入图像描述

图的主要部分是域,其中有一些人链接到它.Person对电子邮件属性有一个独特的约束,因为我也有来自其他来源的数据,这非常适合.

在我的情况下,一个人可以是管理员,他有一些链接到他的设备/日历.我从一个SQL数据库中获取这些数据,我导入了几个表来组合整个图片.我从一个表开始,它有两列,管理员的电子邮件和他的用户ID.此用户标识仅适用于生产数据库,并且不会全局用于其他源.这就是为什么我使用电子邮件作为人的全球ID.我目前正在使用以下查询来导入所有生产表都链接到的用户ID.我总是得到用户设置和信息的当前快照.此查询每天运行4次:

CALL apoc.load.jdbc(url, import_query) yield row
MERGE (p:Person{email:row.email})
SET p.user_id = row.id
Run Code Online (Sandbox Code Playgroud)

然后我从其他表导入链接到此用户ID的所有数据.

现在问题出现了,因为来自生产数据库的用户可以更改他的电子邮件.所以我现在导入这个的方式我将最终得到两个具有相同user_id的人,随后所有设备/日历将链接到两个人,因为他们都共享相同的user_id.所以这不是对现实的准确表述.我们还需要捕获设备连接/断开连接到特定user_id的时间,因为可以连接/断开设备并将其借给具有不同管理员(user_id)的朋友.

如何更改我的图形模型(导入查询),以便:

  1. 查询当前是谁的管理员不需要复杂的查询
  2. 查询当前已连接设备的人不需要复杂查询
  3. 查询历史可能会更复杂一些.

graph neo4j cypher

11
推荐指数
1
解决办法
1881
查看次数

标签 统计

cypher ×1

graph ×1

neo4j ×1