我需要在图形数据库中对航空公司的飞行数据进行建模(我特别使用neo4j,但如果出现问题,我会考虑其他人)。我的问题更多的是关于如何以一种便于遍历和发现不同航班选项的方式对这些数据进行建模。我想要存储和稍后查询的数据类型的一些具体示例:
1)像JFK-> LAX这样的直飞场景。看似简单,简单的两个节点关系。但是这两个节点之间可能有许多可能感兴趣的航班。那么,如果我需要存储单独的飞行细节,那么JFK和LAX节点之间关系中的数组最好吗?
2)具有多个停靠点的航班情景,例如JFK-> LAX-> SAN。在这种情况下,如果我对出发和到达城市感兴趣,似乎建模三个节点之间的关系可能是有限的效用?即我可以与JFK-> SAN建立关系,而且洛杉矶国际机场有停留的事实可能是这种关系中的财产?
如果我需要根据节点之间关系中的数据数组查询或遍历图形,并且这些数组变大(例如JFK和LAX之间有100个不同的飞行),那会不会引入性能或可扩展性问题?
希望这个问题不是太开放 - 我只是试图避免构建适用于具有约5个节点但却无法扩展到数百个机场和数万个航班的小型示例模型的东西。
答案 0 :(得分:5)
数百个机场和成千上万的航班仍然是一个非常小的数据集,如果在neo4j中出现问题,我会感到惊讶。
在我的头顶,您可能将所有机场都作为自己的节点,每条路线可以是自己的节点,与其接触的所有机场有关系,也许每个关系的“订单”属性是本地的到路线。
(ROUTE1)--------- / \ \ *order=1/ \*order=2 \*order=3 v v v (JFK) (LAX) (SAN)
我确信有更好的解决方案。
答案 1 :(得分:2)
查看Neo4J的contribution page
他们比赛的获胜者之一是描述US Flights and Airports已经做得很好的要点
答案 2 :(得分:2)