Сегодня утром у нас было совещание о том, как должно храниться наше удостоверение личности для некоторых активов, которые мы имеем в нашей базе данных, которую мы создаем, дескрипция вызвала немного тепла, поэтому я решил проконсультироваться со специалистами SO.
Структура таблицы, которая, как я полагаю, должна быть у нас (короткая версия), выглядит следующим образом:
Пример 1)
- AssetId - int (32) - первичный ключ
- Тип - строка
поэтому некоторые примеры данных выглядят так:
==AssetId======Type===
12345 "Manhole"
155415 "Pit"
и т.д.
Другой член команды предложил что-то вроде этого:
Пример 2)
- AssetId - строка - первичный ключ
- Тип - строка
поэтому некоторые примеры данных выглядят так:
==AssetId======Type===
"MH12345" "Manhole"
"P155415" "Pit"
где мы делаем короткую версию типа и добавляем ее в начало идентификатора и сохраняем в базе данных. Я видел несколько баз данных активов, которые делают это, и никогда не было такого подхода.
Мне никогда не нравилась идея использовать строки в качестве идентификатора для сортировки. Мне также кажется, что она хранит бесполезную информацию только ради нее, когда у вас уже есть тип хранилища активов.
Какой подход вы бы выбрали? И почему? Есть ли какие-либо преимущества в использовании подхода 1 над 2?
РЕДАКТИРОВАТЬ: Да, я буду использовать AUTO_INCREMENT для подхода 1.