Почему Google Datastore рекомендует ручное распределение идентификаторов сущностей? - PullRequest
1 голос
/ 23 октября 2019

Я хотел бы показать пользователям 16-значный числовой идентификатор сущностей Google Datastore для моего приложения. Однако в документации Google Datastore есть строка, которая гласит:

"Если вы хотите отображать идентификаторы сущностей для пользователя и / или зависеть от их заказа, лучше всего сделатьиспользовать ручное распределение. "

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

1 Ответ

1 голос
/ 23 октября 2019

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

И также обратите внимание, что после использования ручного выделения вам необходимо заблокировать этот идентификатор с помощью функции datastore.AllocateIDs, чтобы избежать конфликтов:

Вместо того, чтобы использовать строки с именами ключей или автоматически генерировать числовые идентификаторы, расширенные приложения могут иногда захотеть назначить свои собственные числовые идентификаторы вручную созданным объектам. Имейте в виду, однако, что ничто не мешает Cloud Datastore назначить один из ваших числовых идентификаторов вручную другому объекту. Единственный способ избежать таких конфликтов - это заставить ваше приложение получить блок идентификаторов с помощью функции datastore.AllocateIDs. Автоматический генератор идентификаторов Cloud Datastore будет отслеживать идентификаторы, которые были выделены с помощью этой функции, и избегать повторного использования их для другой сущности, поэтому вы можете безопасно использовать такие идентификаторы без конфликтов.

...