Я реализую веб-портал, основанный на синатре/рельсах, который, возможно, в конечном итоге может содержать несколько: много связей между таблицами/моделями. Это команда одного человека и неполный рабочий день, но приложение для реального мира.Neo4j вместо реляционной базы данных
Я обсуждал свое сущность с кем-то и посоветовал попробовать neo4j. Исходя из настоящего «несексуального» корпоративного мира, моя склонность - использовать реляционный db, пока он не перестанет масштабироваться или не станет кошмаром из-за осколков и т. Д., А затем подумайте о чем-нибудь еще.
ОДНАКО
- Я использую Postgres впервые в этом проекте вместе с DataMapper и его берет меня время, чтобы начать очень быстро
- Я просто попробовать несколько вещей, и строить больше пользы поэтому я должен обновить свою схему (идея прототипирования и отзывы от бета-версии). Я не буду делать это в neo4j (кроме изменения моих запросов)
- Кажется, что его очень легко настроить, используя neo4j. Но Postgres также может выполнять полный текстовый поиск.
- Postgres недавно объявила о поддержке json и javascript. Удивление, если я должен просто придерживаться PG и инвестировать больше времени на изучение PG (у которого есть хорошее сообщество) вместо neo4j.
Ищем для нас, где neo4j лучше, особенно при пропинге/начальной стадии проекта. Я понимаю, что если сайт растет, я могу в конечном итоге иметь несколько постоянных технологий, таких как s3, реляционный (PG), mongo и т. Д.
Также было бы хорошо знать, как это происходит с экосистемой Rails/Ruby.
Update1:
Я получил много хороших ответов и, кажется, как правильно сделать, это палка с Postgres сейчас (особенно, так как я развернуть на Heroku)
Однако идея отсутствие схемы - заманчиво. В основном я подумываю о подходе, когда вы не определяете datamodel, пока не скажете 100-150 пользователей, и вы сами разобрались в хорошей схеме (бизнес-кейсах) для своего продукта, в то время как вы просто демонстрируете концепцию и получаете обратная связь с ограниченными регистрациями. Тогда можно решить схему и начать с реляционной.
Было бы неплохо знать, если есть простой в использовании схемы/меньше параметр сохраняемости (основанный на простоте использования/установки для нового пользователя), которые могут отказаться сказать масштабирование и т.д.
Масштабирование и очертание не являются основными причинами, по которым я бы выбрал базу данных графа. Можете ли вы предоставить дополнительную информацию о своем домене? Вы моделируете что-то, что является сетью? Вам нужно будет вычислить любую статистику сети или запустить любые алгоритмы графа? Наличие нескольких таблиц «многие-ко-многим» может указывать на сеть, так как вы можете рассматривать эти отношения как ребра. Что представляют собой ваши края? –