首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多位置库存流的图建模

多位置库存流的图建模
EN

Stack Overflow用户
提问于 2016-12-30 23:27:00
回答 1查看 246关注 0票数 1

我试图把库存的流动建模成一个图形,在给定的时间内。信息要么存储在RDBMS中,要么存储在CSV文件中。

我试图完成的任务的一个表示是转换下表:

代码语言:javascript
复制
Product FromLoc ToLoc   Qty TransactionType TransactionTime
A       Loc1    Loc2    10  Move            1/1/2017 10:00
A       Loc0    Loc2    15  Move            1/1/2017 11:00
A       Loc2    Loc3    25  Move            1/1/2017 12:00
A       Loc3            5   Scrap           1/1/2017 14:00
A       Loc3    Loc4    20  Move            1/1/2017 16:00

像这样的事情:

我试着用neo4j来做这件事,但我对这个行业并不熟悉。

欢迎提出建议!

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-31 02:54:27

在为图db建模时,将数据模型中的重要实体建模为节点通常是有意义的。如果您计划按属性查找信息,这尤其有用,因为索引和唯一约束适用于节点上的标签/属性,并允许快速查找。

在当前模型中,您的重要数据存储在关系中(事务类型、产品类型、产品数量),根据您想要对这些数据进行的查询类型,您可能很难以这种形式查询它。例如,如果您想对所有产品在一段时间内发生的所有事务进行查询。由于关系及其属性没有编入索引,因此必须搜索所有关系,而且随着关系数量的增加,查询的效率将逐渐降低。

归根结底,这取决于您计划对数据进行什么样的查询。如果您的建议模型允许您高效地(即使是使用大数据集)进行这些查询,并且您认为您计划编写的未来查询也将是高效和简单的,那么就可以了。

作为一种可能的备用模型,考虑将事务建模不是作为关系,而是作为:事务节点(您还可以将事务节点与事务类型一起标记,以加快仅限于某些类型的事务的查询)。

A:事务节点可能具有以下属性:

  • 产品(索引)
  • qty
  • transactionTime (索引)

它可以与:Location节点有关系,如:

代码语言:javascript
复制
(:Location)-[:Txn_Out]->(:Transaction)-[:Txn_To]->(:Location)

在这里,选择正确的关系类型是很棘手的。一方面,你希望这些关系在语义上是正确的。但是,在您的例子中,对产品流进行建模并能够将其可视化也是非常重要的。如果我们使用:From和:To relationships,那么语义上正确的建模方法将永远是向外:事务,并且总是向内到:位置。虽然这样做没有什么问题,而且您的查询也很好,但图形的可视化可能会让人感到困惑,因为您无法通过仅仅查看关系方向(例如:From和:To relationship总是传入到:Location)来查看产品的流程。这取决于你如何建模。我对:Txn_Out和:Txn_To的上述建议是我所能想到的最好的建议,它既保留了语义,又保持了关系方向的单向流动。

使用节点用于:事务的另一个优点是,在报废事务的情况下,或者在任何事务中,产品不会流到图形中的任何其他节点。Neo4j不允许悬空的关系,关系必须连接两个现有节点,因此不能像图中那样对报废事务建模。如果您有一个:Transaction:报废节点,那么您所需要的只是从相关位置到该节点的:Txn_Out关系,而不需要在其他任何地方建立:Txn_To关系。

如果您想为每个产品建模更多的数据,我建议创建:产品节点来保存这些属性,并将它们附加到涉及这些产品的:事务:

代码语言:javascript
复制
(:Transaction)-[:Product]->(:Product)

另外,对于您的日期/时间数据,Neo4j以毫秒为单位对时间进行建模(例如,使用时间戳()函数),并且不支持解析或格式化字符串表示。我强烈鼓励安装APOC,它支持日期/时间操作以及许多其他有用的功能和过程。

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

https://stackoverflow.com/questions/41403952

复制
相关文章

相似问题

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