Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/07/2010, 16:34
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Formato de los id o codigos a nivel de bd

El problema no es si es conveniente o no. El problema es decidir qué es lo que permite identificar unívocamente un registro en una tabla, es decir: atenerse a la definición de lo que es una clave primaria. Cualquier otra cosa es irrelevante y tiene que ver con el diseño del sistema, no con la base.
Lo que sí se puede inferir de lo que propones es que hay una serie de valores que componen la clave primaria, y si estos valores tiene existencia por sí mismos, son esos valores los que deben ir como campos de la tabla y componer al mismo tiempo la clave primaria de la misma.
¿Qué sentido tiene poner los campos ya combinados si con varios campos (y sin puntos, ni comas ni signos) obtienes el mismo resultado, con el agregado que en tu propuesta deberías usar un VARCHAR, mientras en el otro caso alcanzaría con INTs, que combinados usarían menos espacio en disco?
Además, hacer un campo combinado de códigos para obtener una PK artificialmente tendrá como consecuencia que no puedas realizar consultas usando los códigos implicados en esa PK por sí mismos, lo que reduce la eficiencia y efectividad de la tabla a las consultas. Esto porque para lograr esas consultas deberás descomponer (innecesario si los pones como campos independientes) la PK en sus partes básicas, para luego analizarlo.

Resumiendo: Atente al modelo relacional y si necesitas varios valores para identificar un registro en una tabla, simplemente usa PK de campos multiples.
Siempre será más eficiente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)