Usar prefixos específicos de itens e numeração automática para chaves primárias?
Tivemos uma reunião nesta manhã sobre como armazenar nossa ID para alguns ativos que temos em nosso banco de dados que estamos produzindo, a descusão gerou um pouco de calor, então decidi consultar os especialistas da SO.
A estrutura da tabela que eu acredito que deveríamos ter (versão curta) é a seguinte:
Exemplo 1)
AssetId - int (32) - Chave primáriaTipo - sequênciaportanto, alguns dados de exemplo são assim:
==AssetId======Type===
12345 "Manhole"
155415 "Pit"
etc.
Outro membro da equipe sugeriu algo como isto:
Exemplo 2)
AssetId - string - Chave PrimáriaTipo - sequênciaportanto, alguns dados de exemplo são assim:
==AssetId======Type===
"MH12345" "Manhole"
"P155415" "Pit"
onde criamos uma versão curta do tipo e anexamos à frente do ID e a armazenamos no banco de dados. Eu já vi alguns bancos de dados de ativos que fazem isso e nunca têm realmente essa abordagem.
Eu realmente nunca gostei da idéia de usar strings como ID por motivos de classificação. Também sinto que ele está armazenando informações inúteis apenas para fins de segurança, quando você já possui o tipo de armazenamento de ativos.
Que abordagem você adotaria? E porque? Existem benefícios em usar a abordagem 1 sobre 2?
EDIT: Sim, usarei AUTO_INCREMENT para a abordagem 1.