Neo4j 是不是支持视图的概念

Posted

技术标签:

【中文标题】Neo4j 是不是支持视图的概念【英文标题】:Does Neo4j Support the concept of viewsNeo4j 是否支持视图的概念 【发布时间】:2014-04-11 15:11:29 【问题描述】:

我从 Neo4J 开始尝试将我当前的系统从关系数据库迁移到 Neo4j 并且有一个特殊的问题需要克服。

我有一个名为 Orders 的表,其中有 2 个特定的列很麻烦。 ShipBy 是 (Train/Air/Truck) 的值 承运人是承运订单的公司的 ID,但这种情况会发生变化,如果它通过空运运输,它有类似 UPS/ALASKA/CONTINENTAL 之类的东西;如果它通过火车运送,它有类似 BNSF/KANSASCITYRAIL/ETC...

这些值来自不同的目录表,所以在我的系统中解决了这个问题 从 Orders 中选择 Orders.Number、Carrier.Name,(从 Truckers union all 中选择 'T' Type、Id、Name 从 RailCompanies union all 中选择 'R' Type、Id、Name 从 AirLines 中选择 'A' Type、Id、Name)运营商 其中 Orders.ShipBy = Carriers.Type 和 Orders.CarrierId=Carrier.Id

我将不胜感激。

【问题讨论】:

【参考方案1】:

Neo4J 不像关系数据库那样拥有视图。作为替补,您可以做几件事:

    根据需要不断重新发出计算所需“视图”的查询 创建一个特殊的“视图节点”,然后通过关系将该节点链接到“视图”中自然出现的所有其他节点。然后,查询您的视图变得像拉起那个“视图节点”并遍历您的边缘到视图结果一样简单。

选项#1 最简单,选项#2 可能更快,但随之而来的是维护负担,随着数据库中的底层节点发生变化,您需要维护视图并确保它指向正确的位置。

【讨论】:

【参考方案2】:

正如我们所读到的here“在数据库理论中,视图是对数据的存储查询的结果集,数据库用户可以像在持久数据库集合对象中一样查询它。”

Neo4j 不托管存储查询,但您可以考虑扩展 Stefan 在此处发布的 Neo4j 服务器:https://***.com/a/21780942/3442366

物化视图当然不同...

依靠 Neo4j 提供的关系管理功能;-)

干杯, 洛伦佐

【讨论】:

以上是关于Neo4j 是不是支持视图的概念的主要内容,如果未能解决你的问题,请参考以下文章

谷歌云是不是支持 neo4j?

Unity3D视图中心 ( 视图中心概念 | 围绕游戏物体旋转 | 添加游戏物体到游戏场景的位置 )

什么是基本表?什么是视图?两者的区别和联系是什么?

Hive 是不是支持临时视图?

View Binding 是不是支持 Adapter 类的视图绑定

测试给定的 iPhone 是不是支持展开模式下的拆分视图