Могу ли я / я должен использовать ориентированную на документы базу данных в качестве пользовательской базы данных? - PullRequest
3 голосов
/ 06 февраля 2012

Я нахожусь на ранней стадии создания сайта блогов, где пользователи могут иметь несколько блогов.Я решил использовать документное хранилище для записей в блоге ( MongoDB или CouchDB ).

Однако мне нужно будет управлять своими пользователями - в основном дляаутентификация.Можно ли это сделать в документно-ориентированной базе данных?Как бы я это настроил?Один документ со списком всех пользователей кажется плохой идеей.Или я должен вернуться к реляционной базе данных для этого (скорее всего, MySQL)?

Ответы [ 2 ]

3 голосов
/ 06 февраля 2012

Это вполне возможно и даже более практично, чем СУБД в большинстве случаев. СУБД требуют определения схемы, тогда как базы данных документов, как правило, концептуально не имеют схемы. Это особенно полезно для пользовательских баз данных, поскольку вы можете добавлять пользовательскую информацию в любое время без каких-либо миграций. Например, это совершенно верно:

{
    id: <your UUID>,
    name: "Willy",
    email: "willy@won.ca"
},

{
    id: <your UUID>,
    name: "John",
    facebookId: 10029823,
    avatarUrl: "http:\\graph.facebook.com\picture\10029823
}

Другими словами, он предлагает немного гибкости. Я не могу придумать никаких существенных недостатков.

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

Удачи.

0 голосов
/ 06 февраля 2012

Это вполне возможно, и, на мой взгляд, хорошая идея.Как говорит Ремон, проектирование базы данных документов без схемы - хорошая идея для гибкости.

Чтобы ответить на ваш вопрос о том, как его смоделировать, я бы предложил (в mongodb) набор документов, называемых пользователямис одним документом в коллекции для каждого пользователя.Было бы неплохо использовать уникальный индекс для коллекции по имени пользователя.

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