我正在实现一个基于 sinatra/rails 的门户网站,它最终可能在表/模型之间有很少的 many:many 关系。这是一个单人团队和兼职但现实世界的应用程序。
我与某人讨论了我的实体,并被建议尝试 neo4j。来自真正的“非性感”企业世界,我倾向于使用关系数据库,直到它停止扩展或由于分片等而成为噩梦,然后再考虑其他任何事情。
然而,
- 我在这个项目中第一次使用 postgres 和 datamapper,它让我花时间快速上手
- 我只是在尝试一些事情并构建更多用例,因此我必须不断更新我的架构(原型设计想法和来自 beta 版的反馈)。我不必在 neo4j 中执行此操作(更改我的查询除外)
- 似乎使用 neo4j 设置搜索非常容易。但是 Postgres 也可以进行全文搜索。
- Postgres 最近宣布支持 json 和 javascript。想知道我是否应该坚持使用 PG 并花更多时间学习 PG(它有一个很好的社区)而不是 neo4j。
寻找 neo4j 更好的用例,尤其是在项目的原型/初始阶段。我知道如果网站增长,我最终可能会拥有多种持久性技术,如 s3、关系 (PG)、mongo 等。
此外,最好了解它在 Rails/Ruby 生态系统中的表现。
更新1:
我得到了很多很好的答案,似乎正确的做法是现在坚持使用 Postgres(尤其是在我部署到 heroku 之后)
然而,无模式的想法很诱人。基本上我正在考虑一种方法,在你有 100-150 个用户之前你不定义数据模型,并且你自己为你的产品找到了一个好的模式(业务用例),而你只是在演示这个概念并得到注册数量有限的反馈。然后可以决定一个模式并从关系开始。
很高兴知道是否有易于使用的模式/较少的持久性选项(基于易于使用/为新用户设置)可能会放弃说缩放等。