我的部分图表具有以下架构:
图的主要部分是域,其中有一些人链接到它.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)的朋友.
如何更改我的图形模型(导入查询),以便: