我应该在 Neo4j 数据库上使用中间节点吗?
Should I use an Intermediate node on my Neo4j database?
我是图形数据库的新手,我正在尝试制作一个应用程序,用户可以在其中 post 文本并将其与其他文本相关联。例如,用户 Sarah 可能想要 link 包含文本 'I should pay my taxes' 的节点,关系类型 'supportedBy' 指向文本 'The IRS will hunt me down, and I will go to如果我不这样做就坐牢。但是,我想 link 与最初伪造它的人建立关系。我可以想到几种方法来做到这一点,但我不知道哪种方法会带来最佳性能和数据存储。我能想到的所有方法最终都会重复信息,我不希望数据库膨胀。
主要的方式是引入一个Sarah指向的中间节点'made'。如果原始制造商选择切断连接,其他用户反过来可以 'claim' 该节点实质上对中间节点进行投票并阻止其被删除。然后这个中间节点指向两个原始节点 'supportedBy' 和 'supporting'.
我考虑的是否正确,或者是否有更好的方法来处理这种情况?
您可以创建几个属性字段来注释声明之间的 SupportedBy 边缘。一个可能是 "Original Claim",值为 Sarah,其他属性 "Upvotes" 和 "Downvotes" 将用户名附加为 vector/list。简单查询 Upvote 和 Downvote 属性的长度即可得出您的净得分。
我是图形数据库的新手,我正在尝试制作一个应用程序,用户可以在其中 post 文本并将其与其他文本相关联。例如,用户 Sarah 可能想要 link 包含文本 'I should pay my taxes' 的节点,关系类型 'supportedBy' 指向文本 'The IRS will hunt me down, and I will go to如果我不这样做就坐牢。但是,我想 link 与最初伪造它的人建立关系。我可以想到几种方法来做到这一点,但我不知道哪种方法会带来最佳性能和数据存储。我能想到的所有方法最终都会重复信息,我不希望数据库膨胀。
主要的方式是引入一个Sarah指向的中间节点'made'。如果原始制造商选择切断连接,其他用户反过来可以 'claim' 该节点实质上对中间节点进行投票并阻止其被删除。然后这个中间节点指向两个原始节点 'supportedBy' 和 'supporting'.
我考虑的是否正确,或者是否有更好的方法来处理这种情况?
您可以创建几个属性字段来注释声明之间的 SupportedBy 边缘。一个可能是 "Original Claim",值为 Sarah,其他属性 "Upvotes" 和 "Downvotes" 将用户名附加为 vector/list。简单查询 Upvote 和 Downvote 属性的长度即可得出您的净得分。