我从Neo4J开始尝试将当前系统从关系数据库迁移到Neo4j 并有一个特殊的问题需要克服。
我有一个名为Orders的表,并且有两个特定的列很痛苦。 ShipBy是(火车/空运/卡车)的价值 承运人是承载订单的公司的身份证,但如果由航空公司发货,则会发生变化,如UPS / ALASKA / CONTINENTAL;如果它乘火车运送,它有类似BNSF / KANSASCITYRAIL / ETC ......
这些值来自不同的目录表,因此在我的系统中解决了这个问题 从订单中选择Orders.Number,Carrier.Name,(选择' T'类型,ID,来自Truckers union的姓名全部选择&R;#R'类型,ID,来自RailCompanies union的名称全部选择& #39; A'类型,ID,来自AirLines的名称)运营商 Orders.ShipBy = Carriers.Type和Orders.CarrierId = Carrier.Id
我很感激任何指针。
答案 0 :(得分:3)
Neo4J没有关系数据库的方式。你可以做几件事作为替补:
选项#1最简单,选项#2可能更快,但随之而来的是维护负担,当数据库中的底层节点发生变化时,您需要保持视图并确保它指向正确的位置。 / p>
答案 1 :(得分:3)
我们可以阅读here"在数据库理论中,视图是数据存储查询的结果集,数据库用户可以像在持久数据库集合对象中一样查询"
Neo4j没有托管存储的查询,但您可以考虑扩展Stefan发布的Neo4j服务器:https://stackoverflow.com/a/21780942/3442366
物化视图当然不同......
依靠Neo4j提供的关系管理的力量; - )
干杯, 洛伦佐