У меня есть база данных пользователей, у которых есть уникальный идентификатор (Java UUID), чтобы различать их, так как другие данные (имя, IP и фамилия) могут содержать дубликаты. Является ли хорошей идеей установить _id для уникального идентификатора, поскольку это избавит меня от создания и индексирования другого поля и отсутствия бесполезного поля _id.Использовать пользовательское значение _id
0
A
ответ
2
Это спорная тема, и ее специфика варьируется в зависимости от механизма базы данных. Я буду говорить более широко, предполагая, что механизм базы данных может измениться в более поздний момент времени. Чтобы помочь вам решить, вот некоторые плюсы и минусы для использования UUID как в строке и ID:
Pros:
- Unique через столы, где данные различны, но схожи по характеру
- делает перемещение из одного СУБД к другой очень прямо вперед, как ID подряд не является полностью зависит от времени введения
Против:
- Запрещает строгую кластерную индексацию, поскольку UUID не являются последовательными. Это означает, что когда вы делаете вставку, ваша база данных должна будет перетасовать большое количество страниц памяти, чтобы сохранить порядок (некоторые механизмы базы данных, такие как SQL Server, создают поле «uniquifier», чтобы обойти это, но, в конце концов, стоят так же, как и используя Int в качестве первичного ключа)
- делает отладку в приложении или файл журнала гораздо более трудным как поле ИНТ легче сравнить/посмотреть на чем UUID
- присоединяется к таблицам медленнее стихи междунар, верно и для большинство всех реализаций базы данных
Мой личный совет будет использовать Int для у наш идентификатор. Ваши соединения будут быстрее работать с таблицами, а в целом намного легче отлаживать. Конечно, вы все же можете использовать UUID для внешнего ключа, но по мере того, как ваше решение масштабируется, небольшие удобные для чтения значения пригождаются.
Смежные вопросы
- 1. Mongodb aggregation, Использовать значение из переменной в выражении $ group _id
- 2. Как использовать mongodb _id, чтобы найти запись
- 3. Использовать Int64 (BigInt) для MongoDB's _id
- 4. _id против _ID в MongoDB
- 5. Установить пользовательское значение NativeSelect
- 6. Пользовательское значение create_user()?
- 7. Как получить значение _id в шаблоне Meteor
- 8. Пользовательское значение параметра в выберите
- 9. как использовать пользовательское значение поля по умолчанию на WordPress
- 10. Дублирующее значение, вставленное в поле «_id» mongodb
- 11. Невозможно получить значение mondodb _id в php
- 12. найти строку с _id и Исключает значение
- 13. Метеорная вставка, создающая странное значение _id
- 14. использовать _id быть в состоянии запроса даты
- 15. Как использовать поле _id с оператором $ lt
- 16. Как использовать MongoDB найти без шестнадцатеричного _id
- 17. ReactiveMongo: Как использовать $ в оператора с _id
- 18. Пользовательское значение для столбца идентичности
- 19. Yii2 rest вернуть пользовательское значение
- 20. Как передать пользовательское значение AutocompleteExtender?
- 21. Пользовательское Значение Accessor в Angular2
- 22. Пользовательское значение для измененного поля
- 23. Эпицервер пользовательское значение свойства сохранить
- 24. MySQL пользовательское значение метки времени
- 25. Пользовательское значение для RangeTickLabel AndroidPlot
- 26. Пользовательское собственное значение в MATLAB
- 27. UITableViewCells не принимает пользовательское значение
- 28. Невозможно использовать пользовательское действие DLL
- 29. Как использовать пользовательское ядро SVM?
- 30. joomla 2.5 сохранение пользовательское дополнительное значение
Что вы хотите сказать? –
@atishshimpi «Это хорошая идея установить _id на уникальный идентификатор, так как это избавит меня от создания и индексирования другого поля и отсутствия бесполезного поля _id». – user2248702
Это совершенно нормально в MongoDB. – wdberkeley