У вас есть несколько вариантов, когда речь идет о UUID-ы.
Первый выбор - это если вы хотите создать клиентскую сторону _id (узел, браузер и т. Д.) Или кушеткой. Похоже, вы хотите создать свой собственный uuid на стороне клиента. Это нормально. Просто вставьте результат своей функции в поле _id документа, который вы сохраняете на couchdb. Диван просто будет использовать это.
У вас может быть диван, создающий идентификатор. Couchdb генерирует только _id, если вы не выбираете его самостоятельно. Couchdb по умолчанию использует алгоритм «последовательного» генерации uuid. Вы можете изменить алгоритм на другие через futon и config. Существует раздел под названием «uuids» с ключом «алгоритма». Вы можете увидеть источник этих алгоритмов здесь:
https://github.com/apache/couchdb/blob/master/src/couchdb/couch_uuids.erl
С описаниями о них здесь:
http://wiki.apache.org/couchdb/HttpGetUuids?highlight=%28utc%5C_random%29
Как вы можете видеть, функция utc_random очень похожа на ваше предложение. Но если бы вы хотели, чтобы ваш собственный, Если бы вы были склонны, вы могли бы добавить вам алгоритм на сервере и перекомпилировать кушетку.
Вторая часть вашего вопроса касается производительности выбора различных алгоритмов. Я буду цитировать Дэйв Cottlehuber из списка пользователей поста:
CouchDB будет иметь лучшее время вставки, когда ваш документ идентификаторы постоянно растут, так как это сводит к минимуму переписывает к Ь ~ дерева. Это также поможет ваше время сборки по той же причине, а также минимизирует потраченное пространство doc, , хотя это также будет восстановлено во время уплотнения.
Таким образом, как ваш алгоритм, так и utc_random должны быть точными, так как они постоянно расширяются до уровня, кажущегося полезным в одном направлении.
Любая причина, почему? На самом деле это мой вопрос: что такое CouchDB (или любая другая) реализация, правая, что я могу испортить, если я ухожу самостоятельно? (Я бы предпочел не использовать средство CouchDB, потому что это означает много дополнительных поездок в оба конца, тем более, что я могу генерировать идентификаторы в браузере) – josh