[英]Combining Neo4j with PostgreSQL under Rails application
我们正在构建一个应该使用Neo4j
数据库和标准postgresql
的Rails 3应用程序。
将这些组合在一起的最佳方法是什么? 我们需要它们兼容ORM,并且它们需要彼此良好地相互作用(彼此之间的关系等)。
谢谢
像往常一样使用ActiveRecord for Postgresql。 向调用Neo4j并返回ID的模型添加方法。
举个简单的例子:
用户有标签 。 用户模型将具有“ 标签 ”方法。 它会调用一个cypher查询或rest查询,从图形数据库中返回标签的ID([2,3,5])。 然后我会用postgres从postgres加载正确的标签对象
Tag.find_all_by_id([2, 3, 5])
您的应用程序需要协调数据库之间的活动。
使用多个DB可能很有价值,因为你需要不同的功能,但是这会有很大的复杂性,而且你会失去像外键这样的基本功能。
从PostgreSQL方面,理论上可以实现外键关系的一方,防止在远程端仍然存在时从PostgreSQL中删除记录,并防止在远程端不存在的PostgreSQL中插入记录。 您需要查看neo4j是否具有类似灵活的用户定义触发器。
即使有可能,外键执行的表现也可能是绝对可怕的。
对我来说,选择通过公共抽象层使用多个数据库是没有意义的。 您选择同时使用多个DB的主要原因是从每个DB的不同功能中受益,而像ORM这样的抽象层往往会妨碍它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.