Веб-приложение для управления проектами: реляционная или документно-ориентированная БД? - PullRequest
2 голосов
/ 06 февраля 2010

Существует довольно много постов, в которых обсуждаются отношения с базами данных документов, но все они довольно общие.

Я бы хотел понять их различия в конкретном примере.

Давайте представим, что мы создаем другое ориентированное на scrum веб-приложение для управления проектами.

Несмотря на то, что мы хотели бы поэкспериментировать с новой технологией, мы не хотим жертвовать дизайном и увеличивать общую сложность ради того, чтобы сделать что-то новое, ажурное. Мы хотим принять правильное решение, даже если это означает использование старой технологии.

Итак, подумайте о PivotalTracker . Мы будем хранить проекты, истории, комментарии к истории, возможно, редкие вложения и, возможно, подзадачи (история разделена на реальные задачи).

Также существует поддержка итераций, поэтому каждая задача фактически принадлежит проекту и может быть в итерации. Внутри итерации задачи должны быть расположены в определенном порядке. Пользователь может изменить порядок историй, перетаскивая их вверх и вниз.

Для каждой истории мы также хотим отслеживать время, потраченное на нее, используя отдельные записи времени.

Я мог бы захотеть генерировать отчеты, но ничего особенного (вылет, возможно, что-то связанное со временем)

Какую БД вы бы использовали, реляционную или документную? Или какой-то другой? И почему?

Как бы вы спроектировали его структуру? Например, если бы вы использовали документ DB, вы бы нормализовались вообще?

1 Ответ

0 голосов
/ 23 марта 2013

Основной компромисс между NoSQL и реляционными БД заключается в возможностях создания отчетов.В реляционных базах данных это делается с помощью операций над множествами, и реляционные базы данных действительно очень хорошо оптимизированы для отчетности в целом.Это требует жестких схем, чтобы математика работала правильно.С NoSQL dbs это делается через MapReduce, и мешают распределенные вычисления и гибкие схемы.По сути, с NoSQL ваши отчеты всегда построены специально, а специальные отчеты практически отсутствуют.По этой причине я поклонник идеи, что вы должны всегда начинать с РСУБД , а затем добавлять при необходимости дополнительные NoSQL-дополнения.

Это особенно верно для управления проектами, когда владельцы бизнеса могут захотетьвремя от времени появляются новые отчеты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...