Tuvimos una reunión esta mañana acerca de cómo debería almacenar nuestra identificación para algunos activos que tenemos en nuestra base de datos que estamos haciendo, la lluvia de ideas generó un poco de calor, así que decidí consultar a los expertos de SO.¿Usar prefijos específicos de elemento y autonumber para claves primarias?
La estructura de la tabla que creer que deberíamos tener (versión corta) es como la siguiente:
Ejemplo 1)
- assetId - int (32) - Primary Key
- tipo - cadena
por lo que algunos datos de ejemplo es la siguiente:
==AssetId======Type===
12345 "Manhole"
155415 "Pit"
etc.
Otro miembro del equipo sugirió algo como esto:
Ejemplo 2)
- assetId - cadena - de clave principal
- Tipo - cadena
por lo que algunos datos de ejemplo es la siguiente:
==AssetId======Type===
"MH12345" "Manhole"
"P155415" "Pit"
donde hacemos una versión corta del tipo y lo añaden a la parte delantera de la ID y la almacenamos en la base de datos. He visto algunas bases de datos de activos que hacen esto y nunca he tenido realmente este enfoque.
Nunca me ha gustado la idea de usar cadenas como ID para ordenar las razones. También siento que está almacenando información inútil por el simple hecho de que ya tienes el tipo de almacén de activos.
¿Qué enfoque tomaría? ¿Y por qué? ¿Hay algún beneficio al usar el enfoque 1 sobre 2?
EDIT: Sí Me va a utilizar para la aproximación AUTO_INCREMENT 1.
Parece que varias respuestas, incluida la aceptada actualmente, malinterpretan el ejemplo 2 como claves primarias naturales, es decir, claves que contienen datos comerciales reales. Tal vez podría aclarar esto un poco, ya que las claves en el ejemplo 2 parecen ser solo claves indirectas, que no tienen conexión con los datos comerciales de la fila, pero con un prefijo específico de la tabla adicional. –