Должен ли я использовать ObjectID или uid(реализованный мной) для идентификации пользователя?
Я новичок в mongodb
и база данных. Реализуйте функцию, чтобы сделать uid
и использовать местный ObjectId
, Что лучше?
2 ответа
Вы должны оставить генерацию ObjectID для клиентов / драйверов. Это гарантирует, что сгенерированные идентификаторы уникальны среди многих вещей, таких как время, сервер и процесс. Использование стандартного ObjectID также означает, что методы, реализуемые драйверами (например, getTimestamp()), работают.
Однако, если вы планируете использовать свой собственный тип идентификатора для поля _id (т. Е. Не стандартный тип ObjectID), это делает жизнеспособный выбор. Например, если вы хотите сохранить информацию о пользователе в твиттере, то использование идентификатора твиттера в качестве значения _id имеет смысл. Лично я стараюсь полагаться только на тип ObjectID, так как часто в коллекциях в каждом документе уже есть поле, однозначно идентифицирующее каждый документ.
Это зависит от трех вещей:
- Его источник
- Где и как вы используете идентификатор пользователя?
- Личное мнение.
Мое личное мнение таково, что идентификатор объекта достаточно хорош, однако возвращаюсь к первому и второму пунктам.
Если этот идентификатор приходит или будет использоваться в другой базе данных, такой как база данных SQL, вы можете использовать инкрементный идентификатор в качестве хорошей идеи, но SQL и другие специалисты полностью поддерживают идентификатор объекта в шестнадцатеричной форме.
Если этот идентификатор можно использовать так же, как номер счета (например, номер вашего счета для страхования автомобиля, когда вы их набираете), вам может показаться, что идентификатор объекта слишком сложен для запоминания или повторного восприятия пользователями, так как он более дружественный для человека. Идентификатор может быть более применимым здесь.
Так что это действительно зависит от того, как этот идентификатор используется.