假设我想要为一个有销售人员的图表建模。他们属于一个组织,有一个经理,等等。他们被分配到特定的地区和/或客户帐户。您的公司可能会与必须管理的外部合作伙伴合作,以此类推。一个很好的,不平凡的图表。
这张图中的元素一直在变化:销售人员来来去去,或者在组织内部流动,从而改变职责;客户签署合同或取消合同,……
在我的特定用例中,时间点非常重要。上个月底的图表是什么样子的?上一财年末?上周一我们运行作业ABC的时候。例如,上个月底经理的层次结构是什么?上个月底销售人员管理了哪些客户?诸若此类。
在我们的用例中,DELETE不会删除任何内容,但会更新某种end_date。UPDATE不会更新任何内容,但会创建新版本的记录。
我确信我可以将CREATED和START-/END_DATE属性添加到节点和关系中,当然我也可以创建查询。但是这些查询很难编写,而且几乎不可读,到处都是大量重复的where子句。
我希望图形数据库(和它们的图形查询构建器)能让我更容易地进行时间旅行,例如,通过将会话变量设置为时间点,并且为具有开始/结束日期属性的所有节点和引用自动添加所有where子句。对于不具有这些属性的对象,算法应该不会失败,但请考虑满足的条件。
你对这个用例有什么看法,memgraph为这些用例提供了什么帮助?
非常感谢尤尔根
发布于 2018-11-19 21:27:21
据我所知,没有任何图形数据库支持您直接询问的功能类型,尽管如@buda所指出的,您可以对时间序列数据进行建模和查询。我同意@buda所说的,你希望它工作的方式似乎有点不确定,并且非常特定于应用程序,所以我不希望这成为任何数据库的一个功能。
我能想到的最接近开箱即用的支持就是使用一个支持Tinkerpop的数据库和一个PartitionStrategy或SubgraphStrategy来创建你想要的时间的子图,然后根据这个子图进行查询。另一种选择是创建一种特定于领域的语言,以最大限度地减少在查询中需要重复编写代码的次数。
PartitionStrategy
SubgraphStrategy
Domain Specific Languages
https://stackoverflow.com/questions/53353469
复制相似问题