2013-10-24 1 views
3

Looks Mezzanine - одна из лучших на основе CMS на Django. Я хотел бы использовать его в своем проекте, но хочу использовать NoSQL DB. Проделал какое-то исследование, но не смог найти прямой ответ на него.Mezzanine CMS с использованием MongoDB?

Любые документы о том, как использовать MongoDB для мезонина?

Заранее спасибо

+0

Не переписывая большую часть Мезонина, возможно, невозможно (просто потратьте несколько минут на [Мезонинный код] (https://github.com/stephenmcd/mezzanine)), так что если вы ищете вне я не думаю, что вы его найдете. Есть ли какая-то конкретная причина, по которой вы хотите использовать MongoDB? – zero323

+0

Наш проект хочет использовать CMS для управления объектами документов, и это идеально подходит для использования некоторых NoSql DB. Кроме того, структура этих объектов документа будет динамически изменяться на ранней стадии, а использование NoSQL db помогает развитию. – user2777473

+1

Могу ли я вежливо предположить, что вам, вероятно, не нужно решение «NoSQL», и реляционная база данных подойдет вашему проекту просто отлично. –

ответ

6

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

Как я уже говорил выше, ваши требования по использованию базы данных «NoSQL», скорее всего, ошибочны - не обижайтесь!

0

Mezzanine - это CMS, очень ориентированный на традиционный способ, которым Django управляет своими базами данных, и таким образом используется RDBMS. Но базы данных NoSQL, такие как MongoDB, предлагают преимущества, когда необходимо работать с распределенным в базе данных кластера с автоматическим окошком, большими объемами данных, отказоустойчивостью и репликацией. Эти дополнительные функции добавлены с помощью MongoDB, но требования ACID - https://en.wikipedia.org/wiki/ACID- сильно отличаются от требований к транзакциям, в основном из-за ограничений, очень хорошо схематизированных по теореме CAP (https://en.wikipedia.org/wiki/CAP_theorem). Django (который является сильной основой Mezzanine) имеет ORM, разработанный для множества RDBMS, таких как MySQL, Postgre, Oracle и т. Д., И, несмотря на то, что Django имеет прекрасные работы с MongoDB, Cassandra и другими базами данных NoSQL, не означает промежуточная совместимость с пакетами, такими как Mezzanine, которые сильно ориентированы на традиционную ORM Django для RDBM. Когда CMS требует NoSQL ?: Когда вы собираетесь управлять большими объемами страниц контента (Terabytes), которыми пользуется большое количество зарегистрированных пользователей (миллионы), и для всех них требуется быстрый ответ (подумайте в facebook, т.е.) даже если ответ не обновлен. Недостатком здесь является то, что обновление базы данных не является промежуточным для последующих запросов (что допустимо для пользователей facebook), и только в конце концов оно будет обновлено (возможная согласованность - https://en.wikipedia.org/wiki/Eventual_consistency).

CMS работает с NoSQL много, например: https://www.cmscritic.com/how-nosql-is-disrupting-web-content-management/ Дополнительные пакеты, такими как картридж для мезонина ориентированы на транзакции электронной торговли являются для уверен, что этого требование ACID.