2017-02-20 17 views
0

Документы в документеdb должны иметь уникальное свойство id.Что следует использовать для свойства Id для

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

Что я должен использовать свойство Id для ссылки на документ? Если я хочу сохранить стабильный идентификатор документа, есть ли причины для хранения идентификатора, а не ссылки на документ?

ответ

0

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

Немного фона ... Поля ссылок немного устарели, хотя все еще полезны и, вероятно, никогда не уходят. Когда DocumentDB впервые вышел, вы не смогли создать свои собственные ссылки. Они исправили это некоторое время в конце 2015 или начале 2016 года, если память служит. Я подозреваю, что если бы им пришлось все это сделать, они бы сделали все с помощью ручных ссылок, используя идентификатор.

1

Как id (который можно установить), так и _rid (который генерируется DocumentDB) являются уникальными ключами для коллекции в сочетании с настроенным значением ключа раздела. В большинстве приложений используется только id. Основным преимуществом id является то, что он создан пользователем.

Есть некоторые преимущества использования _rid однако:

  • Это глобально уникальные, но не так долго, как Guid
  • Это иерархическое, так что вам не нужно отслеживать базы данных, сбор, и идентификаторы документов - только _rid
  • это монотонно возрастает значение, которое является полезным свойством для некоторых случаев применения (примечание: увеличение в ключе секционирования, не гарантируется заказ через ключи разделительных)

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

  • Нет связанных вопросов^_^