2012-03-29 1 views
1

Я пытаюсь разработать iphone app back-end от PHP или Node.js (которого я еще не решил). Приложение будет выглядеть как многопользовательский инструмент для совместной работы с проектом. Например, каждый пользователь из iPhone может создать проект и другие приглашенных членов могут обсудить сколько они хотят провести по этому конкретному проекту. Каждый пользователь может сложить единую стоимость и сервербудет обрабатывать расчета из общих расходов и обновить обратно все участник проекта. Таким образом, это менее вероятно, приложение в режиме реального времени, но все же, большое количество обновлений и обновлений, необходимых для базы данных.Что нужно выбрать для базы данных NoSQL для многопользовательского приложения для совместной работы с проектами?

Насколько я гугле ...

CouchDB является немного медленнее, чем MongoDB и Radis.

MongoDB быстрый, но есть вероятность потери старых данных. Поскольку все данные должны быть устойчивыми для моего проекта, я должен полагаться на MongoDB?

Radis намного быстрее, чем эти два, но для меня это слишком много, и вам нужно больше времени учиться.

Во всяком случае, я все еще хочу услышать от этих опытных людей отсюда ... что такое NoSQL DB лучше всего подходит для моего сценария?

+2

Так как проект спецификация является расплывчатой ​​и неполной, то ответ «мы не знаем». Поэтому выберите и попробуйте. Не работает - выберите другой. Я бы начал с MongoDB - это моя БД по выбору. –

+0

Также, что случилось с традиционной СУБД для этого проекта? – Dor

+0

@ Dor, будет много событий вставки и обновления для каждого события «проекта». Поэтому я боюсь, что MySQL станет узким местом, когда 100 пользователей из 10 различных проектов будут обновлять и вставлять данные, и каждое обновление необходимо для трансляции всем членам каждого проекта. Было бы хорошо с MySQL? Я не MySQL pro, поэтому я все ухо :) – Devyn

ответ

3

Для решения некоторых из ваших проблем:

С MongoDB, долговечность дается более низкий приоритет для достижения более высоких уровней производительности. Он не записывает данные на диск сразу, вместо этого применяет массовые изменения на диске. MongoDB включил Journaling по умолчанию, так как версия 1.9.2 - это означает небольшую производительность записи, но способность автоматически возвращать базу данных в согласованное состояние во время процесса восстановления. Replication адреса долгосрочные данные долговечность проблемы

Как правило, нельзя предположить, что одна база данных будет быстрее других. Тесты доступны в Интернете часто не успешно эмулировать реальных сценариев, гораздо меньше, в случае конкретного применения

Факторы, которые должны помочь вам решить, -

  • Redis является магазин ключ-значение, MongoDB является магазин документов. Вы должны попробовать и смоделировать свой сценарий, используя оба из них (вы также можете посмотреть хранилища столбцов и реляционные базы данных). Выберите тот, который легче моделирует ваши данные, чем другие. Если для конкретной базы данных вам необходимо выполнить действительно сложные запросы (для вашего сценария), вам следует избегать этого.

  • Системы NoSQL обычно требуют - вы, как пользователь, должны понимать, как это работает для более глубокого уровня абстракции, чем реляционные. Различные системы имеют свои собственные компромиссы для достижения определенных целей (например, производительности или долговечности). Вы должны это понимать и быть готовыми к загрязнению рук

  • В случае неприятностей вам может понадобиться доступ к помощи.Предпочитают те, с хорошей документацией и активным сообществом разработчиков (или легкодоступной коммерческой поддержкой)

Надеется, что это помогает

+0

Спасибо за ваш ответ Элвис. У меня был некоторый опыт работы с CouchDB, и из-за моей нехватки знаний я не очень удобен в создании запросов с помощью CouchDB. После опроса MongoDB я могу ошибаться, он предлагает более гибкий стиль запросов с легкостью. Это происходит и с вами? – Devyn

+0

У меня есть незначительный опыт работы с couchdb, но да, я столкнулся с ситуациями, когда запросы к хранилищу данных кажутся естественными в сравнении с другими. –