CouchDB создает базу данных для каждого типа документа?
Я только начал играть с couchdb, и мне это очень нравится, но мне было интересно, когда вы должны создавать новую базу данных.
Вот что я имею в виду:
Если я должен был создать блог на сервере с несколькими блогами, и это была СУБД, я бы создал базу данных с именем fox_blog и создавал таблицы и отношения для сообщений, комментариев и т.д..
Теперь в CouchDB я просто создаю 3 типа документов: сообщения, комментарии и учетные записи пользователей.
Но это мой вопрос: я бы сделал один db с именем fox_blog и добавил поле "type" в каждый из документов (например, в документах-сообщениях было бы поле типа "type" со значением "post" )? Или я сделаю отдельный db для каждого документа и предшествую имени с именем fox_ (например, имя db будет fox_posts для сообщений)? Или они не являются правильными?
Сообщите мне, если это неясно, было немного сложно объяснить хех
Ответы
Ответ 1
Как правило, я стараюсь хранить отдельные приложения в каждой из своих собственных баз данных. В этом случае, если все различные блоги доступны в одном интерфейсе, сохраните их в одной базе данных, используя поля типа type
и blog
, чтобы идентифицировать каждый документ.
Если вы используете несколько блогов, каждый из которых обращается к их собственному домену или адресу, вы можете захотеть сегментировать каждую из блогов в свою собственную базу данных. В принципе, CouchDB позволяет вам проявлять большую гибкость, поэтому воспользуйтесь этим и экспериментируйте.
Ответ 2
Вы должны создать единую базу данных с полем типа в каждом документе.
Возможно, вы захотите написать представление, которое возвращает документ и все его комментарии вместе.
Ответ 3
Более важно, что запросы по нескольким БД не поддерживаются напрямую, хотя есть способы обойти это.
В вашем случае с сообщениями, комментариями и accts в отдельных БД не будет работать вообще.
Вы можете использовать либо утиную печать, либо использовать поле типа "post/comment" и т.д.
CouchDB имеет встроенную базу данных пользователей, которая также доступна в вашем приложении.