1

假设我想用销售人员建模一个图表。他们属于一个组织,有一个经理,等等。他们被分配到特定的地区和/或客户账户。您的公司可能与必须管理的外部合作伙伴合作,等等。一个不错的,非平凡的图表。

该图中的元素一直在变化:销售人员来来去去,或在组织内移动,从而改变职责;客户签订合同或取消合同,...

在我的具体用例中,时间点非常重要。上个月底的图表如何?上一财年结束?上周一我们运行作业 ABC。例如,上个月末的经理层级是什么?销售人员上月底管理了哪些客户?等等。

在我们的用例中,DELETE 不会删除任何内容,但会更新某种 end_date。UPDATE 不会更新任何内容,但会创建新版本的记录。

我确信我可以将 CREATED 和 START-/END_DATE 属性添加到节点以及关系中,并且我肯定也可以创建查询。但是这些查询写起来很痛苦,而且几乎不可读,到处都有大量重复的 where 子句。

我希望图形数据库(及其图形查询构建器)能够让我更轻松地及时旅行,例如通过将会话变量设置为一个时间点,并且所有 where 子句都会自动添加到所有节点和具有开头的引用/结束日期属性。对于不具有这些属性的对象,该算法不应失败,但要考虑满足条件。

你对这个用例有什么看法以及 memgraph 为这些用例提供了什么帮助?

非常感谢于尔根

4

1 回答 1

2

据我所知,没有任何图形数据库支持您直接询问的功能类型,尽管正如@buda 指出的那样,您可以对时间序列数据进行建模和查询。我同意@buda 的观点,您希望它的工作方式似乎有点不确定并且非常特定于应用程序,所以我不希望这成为任何数据库的功能。

我能想到的最接近这种开箱即用支持的方法是使用启用了 Tinkerpop 的数据库和 PartitionStrategy 或 SubgraphStrategy 来创建仅包含您想要的时间的子图,然后对其进行查询。另一种选择是创建一种特定领域的语言,以最大限度地减少您在查询中需要重复代码的次数。

分区策略

子图策略

领域特定语言

于 2018-11-19T13:27:20.560 回答