Структура PouchDB

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

введите здесь описание изображения


person Sufi    schedule 06.05.2015    source источник


Ответы (3)


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

No.

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

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

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

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

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

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

person Ingo Radatz    schedule 06.05.2015

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

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

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

Такое размещение данных приведет к повышению производительности из-за того, что не требуются дополнительные индексы и меньше кода. Однако ясно, что если ваши требования к данным более сложны, то представления — это то, что вам нужно.

person Matt Way    schedule 15.06.2015

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

person user3405291    schedule 26.06.2017