postgresql – Neo4j而不是关系数据库

postgresql – Neo4j而不是关系数据库,第1张

概述我正在实现一个基于sinatra / rails的门户网站,最终可能只有很多:表/模型之间的许多关系.这是一个单人团队和兼职但真实世界的应用程序. 我与某人讨论了我的实体,并建议尝试neo4j.来自真正的“非性感”企业世界,我倾向于使用关系数据库,直到它停止缩放或因为分片等而成为一场噩梦,然后考虑其他任何事情. 然而, >我在这个项目中第一次使用postgres以及datamapper,它让我有时 我正在实现一个基于sinatra / rails的门户网站,最终可能只有很多:表/模型之间的许多关系.这是一个单人团队和兼职但真实世界的应用程序.

我与某人讨论了我的实体,并建议尝试neo4j.来自真正的“非性感”企业世界,我倾向于使用关系数据库,直到它停止缩放或因为分片等而成为一场噩梦,然后考虑其他任何事情.

然而,

>我在这个项目中第一次使用postgres以及datamapper,它让我有时间快速入门
>我只是尝试了一些事情并构建了更多用例,因此我不得不更新我的架构(原型设计理念和来自beta的反馈).我不必在ne​​o4j中这样做(除了更改我的查询)
>似乎使用neo4j非常容易设置搜索.但Postgres也可以进行全文搜索.
> Postgres最近宣布支持Json和javascript.想知道我是否应该坚持PG并投入更多时间学习PG(有一个很好的社区)而不是neo4j.

寻找neo4j更好的用例,特别是在项目的原型设计/初始阶段.我知道如果网站增长,我可能最终会拥有多种持久性技术,如s3,关系(PG),mongo等.

另外,了解Rails / Ruby生态系统如何发挥作用也是一件好事.

UPDATE1:

我得到了很多好的答案,看起来正确的做法是坚持使用Postgres(特别是因为我部署到heroku)

然而,无模式的想法很诱人.基本上我正在考虑一种方法,在你说100-150个用户之前你没有定义数据模型,你自己已经为你的产品找到了一个好的模式(业务用例),而你只是在演示这个概念并获得有限注册的反馈.然后,人们可以决定一个架构并从关系开始.

很高兴知道是否有易于使用的架构/较少持久性选项(基于易于使用/设置为新用户)可能会放弃说缩放等.

如果您的数据模型非常混乱,则应考虑使用图形数据库.他们需要表达实体之间高度复杂的关系.为此,它们在数据级别存储关系,而RDBMS使用声明式方法.存储关系只有在这些关系非常不同时才有意义,否则你最终会反复复制数据,无需占用大量空间.
要求各种各样的关系,你必须处理大量的数据.这是图表数据库闪耀的地方,因为做大量连接的实例,他们只是选择一个记录并跟随他的关系.为了支持我的陈述:您会注意到Neo4j网站上的每个 use cases都处理非常复杂的数据.

简而言之,如果您不关心我上面所说的内容,我认为您应该使用其他技术.如果这只是关于扩展,无模式或快速启动项目,那么请查看其他Nosql解决方案(更具体地说,是列或面向文档的数据库).否则你应该坚持使用Postgresql.你也可以像你说的那样考虑polyglot persistence,

关于您的更新,您可能会考虑hStore.我认为它符合您的要求.它是一个Postgresql模块,也适用于Heroku.

总结

以上是内存溢出为你收集整理的postgresql – Neo4j而不是关系数据库全部内容,希望文章能够帮你解决postgresql – Neo4j而不是关系数据库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1164857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存