2015-05-06 3 views
14

Я новичок в концепции nosql, поэтому, когда я начинаю учиться PouchDB, я нашел эту таблицу пересчета. Моя путаница в том, как обрабатывать PouchDB, если можно сказать, что у меня есть несколько таблиц, означает ли это, что мне нужно создать несколько баз данных? Поскольку из моего понимания в pouchdb база данных может хранить много документов, но документ означает строку в sql или я неправильно понял?Структура PouchDB

enter image description here

ответ

7

... это значит, что мне нужно создать несколько баз данных?

No.

... документ означает строку в SQL или я неправильно понял?

Это верно. Таблица SQL определяет заголовок столбца (имя и тип) - это имена свойств JSON документа.

Итак, все документы (строки) с теми же свойствами (так называемая «схема») являются эквивалентом вашей таблицы SQL. Вы можете иметь столько разных схем в одной базе данных, сколько хотите (посетите json-schema.org для некоторого вдохновения).

Как запросить их отдельно? Создайте представления CouchDB! Вы можете получить все/некоторые «строки» ваших табличных данных (документы с той же схемой) с одним запросом, как вы знаете, от SQL.

Чтобы написать такие виды легко, свойство type очень распространено для документов CouchDB. Ваше известное имя из таблицы SQL может быть вашим типом, как doc.type: "animal"

Вашими именами могут быть animalByName или animalByWeight. Зависит от ваших потребностей.

9

Ответ на этот вопрос кажется неожиданно недооцененным. В то время как @llabball явно дал достойный ответ, я не думаю, что взгляды - это всегда путь.

Как вы можете прочитать here в разделе Если не использовать карту/уменьшить, Нолан объясняет, что для простых приложений, ключ к злоупотребления_ids и использовать мощь allDocs().

Другими словами, если у вас было два отдельных типа (например, исполнители и альбомы), то вы можете префикс идентификатора каждого типа для получения легкодоступного набора данных. Например, _id: 'artist_name' & _id: 'album_title', позволит вам легко получить художников в порядке имен.

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

0

Иногда план с несколькими базами данных является хорошим вариантом, например, базой данных для каждого пользователя или даже базой данных для каждой пользовательской функции. Взгляните на this conversation на список рассылки CouchDB.

Смежные вопросы