Подходы для генерации автоматически увеличивающихся числовых идентификаторов в CouchDB

Поскольку CouchDB не поддерживает SQL, как AUTO_INCREMENT, каков ваш подход к генерации последовательных уникальных числовых идентификаторов для ваших документов?

Я использую числовые идентификаторы для :

  • Удобные идентификаторы (например, TASK-123, RQ-001 и т. Д.)
  • Интеграция с библиотеками / системами, требующими числовой первичный ключ

Я знаю о проблемах с репликацией и т. Д. Вот почему Мне интересно, как люди пытаются решить эту проблему. 2 [обр] = 5; // компилируется ли эта строка? assert (arr [2] == 5); // выполняет это утверждение ...

Есть этот небольшой вопрос с подвохом, который некоторые интервьюеры любят задавать по любой причине:

int arr[] = {1, 2, 3};
2[arr] = 5; // does this line compile?
assert(arr[2] == 5); // does this assertion fail?

Насколько я понимаю, a [b] преобразуется в * (a + b) , и поскольку сложение коммутативно, их порядок на самом деле не имеет значения, поэтому 2 [a] на самом деле * (2 + a) и это отлично работает.

Это гарантированно будет работать спецификациями C и / или C ++?

36
задан Cœur 13 March 2018 в 07:50
поделиться