Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta sobre diseño

Estas en el tema de Consulta sobre diseño en el foro de Bases de Datos General en Foros del Web. Estimados, tengo una duda pendiente hace rato. Lo voy a ejemplificar para que se comprenda: Supongamos que tengo una tabla "Revista" (id, codigo, nombre). Donde ...
  #1 (permalink)  
Antiguo 15/06/2012, 09:41
 
Fecha de Ingreso: octubre-2008
Mensajes: 9
Antigüedad: 15 años, 7 meses
Puntos: 1
Consulta sobre diseño

Estimados, tengo una duda pendiente hace rato. Lo voy a ejemplificar para que se comprenda:

Supongamos que tengo una tabla "Revista" (id, codigo, nombre). Donde id es el autoincremental, codigo es un alfanumerico de 10 digitos que es unico para cada revista (y tiene codificado cierta informacion), y nombre es el nombre de la revista o titulo.

Supongamos que esta tabla "revista" debe relacionarse con otra tabla "Articulos" en una relacion 1:N (una revista tiene muchos articulos). La pregunta esta relacionada a como hacer la relacion:

¿En la tabla articulo utilizo el id de la tabla Revista? o
¿En la tabla articulo utilizo el codigo alfanumerico unico de la tabla Revista.?


¿Cuales son las ventajas y desventajas de cada solucion, suponiendo gran cantidad de registros?

Saludos
  #2 (permalink)  
Antiguo 15/06/2012, 09:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta sobre diseño

Es una decisión de diseñador.
En esencia, uno de los dos códigos de la tabla Revista está de más, y yo voto por eliminar el autoincremental.
¿Por qué?
Porque el otro código (infiero) es universalmente único, lo que permite poder migrar el dato de base sin causar problemas de consistencia, mientras que un autoincremental es propio de na única base.
Si se deise el caso de tener que recuperar los datos de un backup, y la base hubiese sido reiniciada, con el autoincremental hay riesgo de pisar registros, pero con el otro no.
A mi entender, son mayores los beneficios de usar el alfanumérico, que las ventajas de usar el otro.

Aparte de eso, la decisión es medio arbitraria, porque MySQL admite las dos posibilidades: Usar la PK de Revista, o usar un campo UNIQUE, que en definitiva es una PK CC (candidata).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: diseño
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:27.