В реляционной базе данных вы увидите, что идентификаторы обычно последовательны. В этих базах данных с Rails по умолчанию это автоматически увеличивающееся поле с именем id
по умолчанию. Это 99% случаев, то есть в 99% случаев вы можете ожидать, что это будет сделано именно таким образом. Это вменяемый способ.
Однако в некоторых случаях поле id в базе данных может не увеличиваться автоматически и вместо этого может быть строкой. В базе данных, с которой я сейчас работаю, поле id называется client_id
, представляет собой 6-символьную строку, например «RAB001», и ее нужно вручную назначать самим кодом. Это связано с устаревшей системой, которую мы поддерживаем, и мы ничего не можем сделать, чтобы это исправить. Это просто так.
В других базах данных, таких как Mongoid, идентификаторы снова генерируются автоматически. Здесь есть разница: вместо того, чтобы автоматически увеличивать числа, они представляют собой хэш. В базе данных Mongo мне пригодится одно из полей _id
объекта (обратите внимание на подчеркивание) - это прекрасный, простой для понимания 1 хеш: 4e22b5812f8b7d6f6d000001
. Это автоматически генерируется Mongo, и мне все равно, что это за исключением случаев, когда мне нужно найти объект, и нет другого способа найти его по другому уникальному значению.
Я бы порекомендовал придерживаться автоматически генерируемой системы ID, будь то что-то, предоставляемое традиционными системами баз данных, такими как PostgreSQL или MySQL, или что-то от Mongo.
Любая система, в которой вам необходимо сгенерировать первичный ключ для записи вручную, должна иметь огромную метку "HERE BE DRAGONS" на ней и должна обрабатываться как случай нитроглицерина или аналогично этой подходящей аналогии . Избегайте этой системы, если можете .
1 Я саркастичен здесь.