CouchDB: дизайн «База данных на пользователя» или «Одна база данных для всех»? - PullRequest
8 голосов
/ 16 сентября 2011

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

Я использую CouchDB для хранения пользовательских данных. Если я стремлюсь к масштабируемости, то как лучше всего использовать CouchDB, учитывая следующие параметры?

  1. Иметь один couDDB и положить все в него.
  2. Создание выделенной базы данных для пользователя и сохранение закладок в виде документа.

Что-нибудь еще?

1 Ответ

14 голосов
/ 16 сентября 2011

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

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

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

...