首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Neo4j的节点状态跟踪/日志记录

基于Neo4j的节点状态跟踪/日志记录
EN

Stack Overflow用户
提问于 2014-02-10 20:20:39
回答 2查看 369关注 0票数 1

我正在探索neo4j的潜在用例,我发现关系模型很好,但是我很好奇数据库是否能够支持类似于业务事务日志的东西。

例如,一个视频租赁商店:

  • 客户甲于2014年01月01日租用录影带A
  • 客户A在2014年020日返回视频A
  • 客户乙于2014年0/25日租用录影带A
  • 客户B于2014年02月15日返回视频A
  • 客户C于2014年10月03/10租用录影带A
  • 等等。

业务要求是跟踪与视频A节点相关的所有租赁事务关系。

这在技术上似乎是可能的。一个人会为每一次发生新的租赁创造一种新的关系吗?有没有更好的方法来解决这个问题?这是滥用技术吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-10 21:22:04

好的!这正是导致我开发FlockData (github链接)的确切用例。FD使用Neo4J来跟踪针对域文档的事件类型活动(在您的示例中是租借的)。然后使用标记创建表示与域文档(Movie/Person)关联的元数据的节点。对于租赁状态的每个更改,您都有一个事件节点。在LinkedIn上显示“用户创建”、“用户批准”和“用户审核”的几个图表。

FD使用3种数据库来实现其目标-- Neo4j用于关系网络,KV存储大量数据(Redis或Riak),ElasticSearch允许用户通过免费文本查找他们的商业上下文文档(租房)。

就您的具体问题而言,请对有大量关系的节点保持谨慎。查看建模日期的这篇文章。Peter在Neo4j文档中有一篇类似的文章。

票数 1
EN

Stack Overflow用户

发布于 2014-02-10 20:41:59

我会看它取决于你想从中得到什么。如果您希望开发推荐引擎,或者查看用户和/或电影之间的关系,那么graphDB是一个非常自然的解决方案。如果您正在跟踪视频A的状态随时间的变化,则会为其建模一个时态数据库(数据库)。对于直截了当的事务系统,传统的关系数据库将很容易工作。就个人而言,我认为使用graphDB会有更好的选择。在您的示例中,您将有3个使用者节点、1个视频节点、3个类型的关系:RENTS和两个:RENTS。您需要确保您的属性模型支持相同的用户重新租用相同的电影(将日期存储在数组中,而不是单个值)。只是一些想法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21687127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档