2012-06-11 3 views
1

В системе, которую я создаю, это, по сути, система отслеживания проблем, но с различными шаблонами проблем. Некоторые типы проблем будут иметь разные форматы, другие.Действительно ли MongoDB подходит для этого?

Я изначально планировал использовать MySQL с основной таблицей issues и таблицей issues_meta, содержащей пары ключ => значение. Тем не менее, я думаю, что NoSQL (MongoDB) может быть лучшим вариантом.

Может MongoDB предоставить мне возможность генерировать «стандарт» отчеты, как # вопросов по типу, # вопросов по типу в месяц, # из вопросов, отнесенных на человека, и т.д.? Я спрашиваю об этом, потому что я прочитал несколько источников, в которых говорилось, что Mongo плохо сообщал.


Я также планирую хранить свои журналы аудита в Монго, так как я хочу один «стол» для всех действий (Модификации к любой таблице). В Mongo я могу хранить каждое поле, которое было легко изменено, поскольку оно является схематичным. Это плохая идея?

Все, что я должен знать, и будет ли Монго работать на то, что я хочу?

+0

@woz Больше не хочу этого ... Кроме того, основной вопрос заключался в том, что NoSQL способен предоставлять отчетность. Я реструктурирую свой вопрос. Спасибо –

+1

Почему вы думаете, что MongoDB подходит для этой проблемы лучше, чем другие NoSQL? Если вы собираетесь хранить только пары «ключ-значение», вы теряете основную выгоду MongoDB (структурированные документы). –

+1

MongoDB - это сервер базы данных, поэтому я думаю, что вы действительно хотите изучить отчеты, которые поддерживают MongoDB как источник данных. Например, [Pentaho] (http://www.pentaho.com/big-data/nosql/10gen/) или [Jasper Reports] (http://www.jaspersoft.com/bigdata). – Stennie

ответ

1

Я думаю, что MongoDB будет идеальным сочетанием для этого варианта использования.

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

  • MongoDB будет хорошо подходит для ведения журнала. Вас могут заинтересовать ограниченные коллекции.

  • Если вам нужна реляционная связь между документами, вы можете сделать это тоже.

  • Если вы используете Ruby, я могу порекомендовать вам Mongoid. Это упростит ситуацию. Кроме того, он поддерживает версию документов.

1

MongoDB определенно будет работать (и вы можете использовать capped collections, чтобы автоматически отбрасывать старые записи, если хотите), но вы должны спросить себя, хорошо ли это подходит для этой задачи? Для случая использования, о котором вы описали, лучше использовать Redis (простой и быстрый) или Riak (если вы много заботитесь о своих данных журнала).

+0

Ну, я не собираюсь хранить пары key => value, я собираюсь хранить схему напрямую, потому что я могу использовать разные схемы для разных типов проблем. Вместо того, чтобы использовать две отдельные таблицы, я могу использовать одну коллекцию. –

Смежные вопросы