【问题标题】:How to represent days in timeline tree for Neo4j/graphDB如何在 Neo4j/graphDB 的时间线树中表示天数
【发布时间】:2014-08-26 05:26:37
【问题描述】:

在阅读此blog、此reference 并查看此question 的答案时,我对如何在时间线树中表示不同的日子感到困惑。在这两种情况下,它们在示例数据库上显示的天数都是有限的,我的想法是,如果您想对一整年或无限的时间日历周期进行建模,则该模型无法成立。

我正在阅读这些示例,因此“日”节点只是“1”、“2”、..“31”日的编号。由于每个月都有一天标记为“1”、“2”等,当您将所有天连接到月份时,您如何遍历路径?

例如,在所附的修改后的图中,第 12 个月和第 1 个月都有第 1、2 和 31 天。当我查看事件 2 时,我如何知道这发生在 12/31 还是 1/31?我想为所有月份的所有日子建模,并使用模板(据我了解)在图表上创建不明确的路径,不允许离散的时间查询。

或者“天”实体应该是一个更唯一的数字,表示该年的天数,而该数字的属性是该月的天数?

就目前而言,我不明白您如何创建一整年的完整时间线树,因为它是在上述链接中建模的。

【问题讨论】:

    标签: graph neo4j graph-databases


    【解决方案1】:

    修改后的绘图在月份之间共享日期节点,这就是为什么很难知道事件 2 是在 2010 年 12 月 31 日还是 2011 年 1 月 1 日发生的原因

    一年的时间树,分辨率为日,将有 365/366 天节点。所以值为 31 的 Day 节点不被 1 月和 12 月共享,但 1 月和 12 月有自己的第 31 天节点。换句话说,日节点正好对应一个月,而月份节点正好对应一年。

    然后,您可以沿着从事件返回到根的路径,而不会在月份发生分歧。

    上面引用的 Peter 的博客文章显示了从 12 月到 1 月的交叉点,但不共享 Day 节点 31 - 您可以看到他能够回答您上面的所有查询。

    为了创建时间线,GraphAware 有一个模块可以为您维护时间线并帮助您附加事件-http://graphaware.com/neo4j/2014/08/20/graphaware-neo4j-timetree.html

    免责声明:我在 GraphAware 工作

    【讨论】:

    • 对不起,我仍然对您的链接示例感到困惑。第 24 天仅在第 4 个月下显示一次。那一天不应该包含与 24 不同的值吗?或者会有 12 个不同类型的“day”节点,所有节点的值都是 24?
    • 没错——12 个不同类型的 day 节点,值为 24(一年)。每个节点24将与不同的月份相关。不幸的是,由于涉及的节点数量,所有图表都没有显示这一点。叶节点的含义只有在检查到树根的路径时才有意义。
    • 啊灯泡熄灭> - 我需要提醒自己,graphDB 可以有多个具有完全相同属性的节点。如果我理解正确的话,正是与其他节点的关系使它们独一无二。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多