在Neo4j中找到最短路径功能应用于现实生活中的问题

时间:2019-05-02 19:36:43

标签: database neo4j graph-databases

Image showing the graph model with the nodes and relationships

问题

1。)对于“通用计算”途径,哪个模块的影响最大 (即,大多数模块是必修的先决条件)吗?

2。)如果学生在第一年未通过某门课程,请显示以下途径: 至少需要4年的时间才能完成该课程(请注意: 完成课程需要完成的路径。

请帮助

2 个答案:

答案 0 :(得分:0)

  1. 如果我了解您的数据模型,这可能会起作用:

    MATCH (m:Module)<-[r:PRE_REQUISITE]-(:Module)-[:ON]->(pw:Pathway)
    WHERE pw.title = 'General Computing' AND r.type = 'Compulsory'
    RETURN m, COUNT(*) AS impact
    ORDER by impact DESC
    LIMIT 1
    
  2. 您没有提供足够的信息。我们不知道每个模块需要多长时间才能完成,提供的频率如何,是否需要考虑level属性,如何考虑,还有其他type个值,以及它们的真正含义,等等。看来,人们真的会希望4年的 maximum ,而不是 minimum

答案 1 :(得分:0)

我认为第一个问题的答案应该是这样的:

match(模块)<-[r:PRE_REQUISITE {类型:“必修”}}]-(m:模块)-[:ON]->(p:路径{title:“通用计算”}) 返回module.title为ModuleName,count(*)为highest_impact

按highest_impact desc排序 限制1