CouchDB создать базу данных для каждого типа документа? - PullRequest
12 голосов
/ 13 июня 2011

Я только начал играть с couchdb, и мне это очень нравится, но мне было интересно, когда вам следует создавать новую базу данных.

Вот что я имею в виду:

Если бы я создал блог на сервере с несколькими блогами , и это была бы СУБД, я бы создал базу данных с именем fox_blog и создал бы таблицы и отношения для постов, комментариев и т. Д.

Теперь в CouchDB я бы просто сделал 3 типа документов: посты, комментарии и учетные записи пользователей.

Но это мой вопрос: я бы сделал одну базу данных с именем fox_blog и добавил бы «тип»поле для каждого из документов (например, в документах публикаций будет поле 'type' со значением 'post')?Или я бы сделал отдельную базу данных для каждого документа и поставил бы перед именем fox_ (например, имя базы данных было бы fox_posts для сообщений)?Или ни один из них не верен?

Дайте мне знать, если что-то из этого неясно, объяснить было немного сложно хех

Ответы [ 3 ]

9 голосов
/ 13 июня 2011

Вы должны создать одну базу данных с полем типа в каждом документе.

Возможно, вы захотите написать представление, которое возвращает документ и все его комментарии вместе.

6 голосов
/ 13 июня 2011

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

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

5 голосов
/ 14 июня 2011

Что еще важнее, выполнение запросов к нескольким БД напрямую не поддерживается - хотя есть способы обойти это.

В вашем случае с постами, комментариями и действиями в отдельных БД вообще не будет работать.

Вы можете использовать либо утку, либо поле типа «пост / комментарий» и т. Д.

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

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