mongodb и sql для системы контроля версий документов
Я студент компьютерных технологий, и у меня есть простое задание, но я бы хотел сделать его немного интереснее:). По сути, мне нужно создать простую многопользовательскую онлайновую систему управления версиями документов с использованием Java или.NET. Поскольку я больше.NET парень, я собираюсь использовать ASP.NET или Silverlight (это еще не решено).
В любом случае интересная часть: я хочу использовать MongoDB для хранения документов (они могут быть практически чем угодно, видео, аудио, простые файлы MSOffice, простой текст), каждой их версии и связанных метаданных (в какой библиотеке, папке они находятся так далее). Я хотел бы добавить что-нибудь еще, например, пользователей, разрешения и т. Д.(Спецификации еще не завершены) в обычную реляционную базу данных. Вопрос в том, что вы думаете об этом? Как вы думаете, это имеет какой-то смысл, или я просто пытаюсь все усложнить? Будет ли проще использовать только mongodb для всего или оставить nosql в полном объеме? Есть ли какие-либо соглашения для такого рода вещей?:)
КСТАТИ. при любых других обстоятельствах я бы использовал какое-нибудь бесплатное, проверенное в бою решение для версионирования документов, но я должен сам разработать и реализовать это, и я пытаюсь сделать это хотя бы немного нетрадиционно:).
Спасибо за каждый комментарий:), любая помощь приветствуется:)
2 ответа
Если бы вы использовали что-то вроде Mongoid на Rails, это было бы тривиально. http://mongoid.org/docs/extras.html Искать версии. В ODM это встроено для вас. Я еще не использовал Mongo в мире.NET, он всегда был чем-то вроде Raven, поэтому я не уверен, что библиотеки для него легко работают, как Mongoid.
Mongo также обрабатывает реляционные данные. Вещи, которые вы хотите нормализовать (например, записи пользователя), могут иметь ссылки на другие документы в БД. И, конечно же, любой волшебный документ, который вы хотите сохранить, также работает.
Делать вещи нетрадиционно, как правило, хороший способ открыть для себя новые пути (лучшие способы?), Так что это хорошая идея.
Использование mongodb также является хорошей идеей из-за свойства схемы.
Использование реляционной базы данных для хранения дополнительной информации довольно странно и добавит больше сложности без каких-либо преимуществ (IMO)