2015-03-31 6 views
1

Я новичок в couchDB и все еще читаю учебники. Мой вопрос в том, является ли обычный способ представлять каждого пользователя моего приложения как пользователя новой базы данных, так как это объясняется так, как я выгляжу везде?Каков стандартный способ представления «бизнес-логики» в CouchDB?

Предположим, у меня есть онлайн-игра с множеством разных игроков - я бы создал нового пользователя базы данных для каждого игрока, который регистрируется? Или я могу создать собственную базу данных «игроков» и создать логику входа в приложение? Не используется для DB с документами, мне кажется странным не различать пользователей db и пользователей моего приложения ...

ответ

0

Вы можете сделать это в любом случае. Во-первых о пользователях CouchDB

  • Пользователи в CouchDB хранятся в специальной базе данных _users

  • разрешений базы данных обрабатываются с помощью специального _security документа. Это характерно для каждой базы данных.

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

Значит, вы можете конечно create a database per user. Прежде чем делать это, спросите себя, действительно ли данные, которые вы храните в каждой базе данных, действительно независимы. Потому что вы не можете запускать запросы с уменьшением количества карт в базах данных. Поэтому, если вы планируете выполнять агрегацию данных для разных пользователей, этот подход не будет работать.

Couchdb также может помочь вам с аутентификацией уровня приложения. Поскольку couchdb использует аутентификацию на основе файлов cookie:

  1. Храните своих «пользователей бизнес-логики» в специальной базе данных _users.
  2. Подтвердите его конечной точкой _session.
  3. Извлеките заголовок файла cookie и отправите его с заголовками приложений.

Вся логика аутентификации реализована для вас с помощью couchdb. Все, что вам нужно сделать, это манипулировать заголовками. Отправляйте cookie из своего приложения и при аутентификации с помощью couchdb отправляйте его с заголовками couchdb.

Если вы предпочитаете писать все управление сеансом в своем приложении, это тоже хорошо. В этом случае просто сохраните пользователей в своей базе данных и убедитесь, что они существуют до их аутентификации. Как и в случае с другой базой данных.

Преимущество использования couchdb в том, что оно по умолчанию безопасно - использование схемы шифрования pbkdf2 для шифрования паролей.

0

Если вместо этого вы хотите, чтобы управлять всеми документами, используя единую базу данных, но по-прежнему осуществляют чтение/ACL, писать, вы можете проверить Chatty Couchapp Tutorial приложение из Smileupps App Store

Это чистого couchapp, опираясь на CouchDB только его бэкенд. Учебник по-прежнему работает, но couchapp полностью работает, и вы можете загрузить его исходный код.

Он реализует ACL для чтения/записи на основе пользователя/пользователя, используя одну базу данных CouchDB. Таким образом, вам не нужно настраивать N репликаций, где N зависит от количества ваших пользователей. У вас есть только одна база данных, содержащая все ваши данные, легко получить запрос на лету (с временными видами) и для операций по техническому обслуживанию. Конечно, вы можете решить увеличить количество баз данных в зависимости от типа ваших данных и случаев использования.

Один couchapp содержит весь необходимый код для интерфейса, администратор приборной панели и на стороне сервера API, реализующие бизнес-правила

пользователя, в зависимости от его роли имеют дифференцированный доступ к различным разделам. то есть он может получить доступ к веб-сайту frontend, но не к панели управления admin.

Вы можете установить бесплатную пробную версию, а затем загрузить исходный код с помощью Smileupps deployment tools, изменить его, загрузить и проверить свои изменения.