2016-08-24 2 views
0

Я начал использовать N1ql, и я слежу за учебниками N1ql от Couchbase.Производительность соединения N1ql по сравнению с альтернативами

Я заметил много раз, что данный документ (скажем, Пользователь) содержит массив с идентификаторами других документов (скажем, заказов), из которых мы можем позже выполнить соединение. Является ли это решение подходящим для ситуации, когда у пользователя могут быть тысячи ссылок?

Если нет, то какова альтернатива? Каким будет правильный подход, чтобы найти всех пользователей и их заказы (где некоторые пользователи могут не иметь заказов)?

ответ

2

Да, оно должно быть подходящим, если другое должное осмотрительность/размер не принимаются. Как обычно, модель данных и связанные запросы должны рассматриваться вместе. Например, если запросы основаны на определенных элементах массива, вы можете использовать индексы массива.

Альтернативы могут быть (в зависимости от различных факторов, для моделирования данных):

  1. вставлять другие документы (денормализации) или
  2. обратный реферирования, где порядок-документы имеют ссылку на соответствующий пользовательский документ , Обратите внимание, что из выпуска Couchbase 4.5 N1QL поддерживает поисковые JOINs & Индекс JOINs, который помогает ПРИСОЕДИНИТЬ пользователям заказов, независимо от того, относятся ли USER к ORDERs или наоборот. http://developer.couchbase.com/documentation/server/4.5/n1ql/n1ql-language-reference/from.html#story-h2-3

-Prasad

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