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

Duda con definicion de campo primario

Estas en el tema de Duda con definicion de campo primario en el foro de Bases de Datos General en Foros del Web. Hola.... Estoy iniciando un proyecto de desarrollo y estoy haciendo el diseño de la BD. Me surgio una duda al definir los campos primarios de ...
  #1 (permalink)  
Antiguo 27/10/2010, 13:25
 
Fecha de Ingreso: julio-2009
Mensajes: 84
Antigüedad: 14 años, 9 meses
Puntos: 1
Pregunta Duda con definicion de campo primario

Hola....

Estoy iniciando un proyecto de desarrollo y estoy haciendo el diseño de la BD. Me surgio una duda al definir los campos primarios de las tablas. Doy un ejemplo àra ver si me hago entender.

Tengo una tabla empleado, que dentro de sus campo tiene un campo tipo documento y un campo numerodocumento. La union de estos dos campos me da la identificacion del empleado y nunca se va a repetir dicha combinacion. Lo normal que yo haria es que haria una llave compuesta de esos dos campos. Pero he visto en muchos otros desarrollos que en vez de hacer eso lo que hace es crear un campo id autoincremental y lo definen como llavecompuesta y los dos campos anteriores quedan como campos normales de la tabla o en su defecto indices unicos.

La pregunta es.. porque se hace eso... porque crear otro campo y no usar la compuesta que tambien nos sirve como identificador. Es por eficiencia, por facilidad de las consultas???

Ahora es muy normal que todas las llaves primarias de un proyecto sean id autoincrementales. Porque se da eso???
  #2 (permalink)  
Antiguo 27/10/2010, 19:41
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: Duda con definicion de campo primario

Cita:
La pregunta es.. porque se hace eso... porque crear otro campo y no usar la compuesta que tambien nos sirve como identificador. Es por eficiencia, por facilidad de las consultas???

Ahora es muy normal que todas las llaves primarias de un proyecto sean id autoincrementales. Porque se da eso???
La respuesta es en realidad simple en la mayoría de los casos: Vagancia, ocio, la ley del menor esfuerzo...
Muchos desarrollos de los que has visto recurren a la salida fácil, en lugar de una salida eficiente. Como poner un ID autoincremental es sencillo de hacer y te asegura la unicidad de la clave, simplemente le agregan eso. Pero no es eficiente. Es patear los problemas hacia adelante sin meterse en el asunto de lleno.
Lo que muchas veces no se ve, en esa salida fácil, son los problemas que pueden producirse cuando debes consolidar datos proveniente de diferentes bases en una sola. Allí la numeración se solapa y empieza a crear serios problemas. Es en ese momento donde ves que el uso de claves incrementales lo único que ha logrado es agregar más problemas y no soluciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/10/2010, 09:33
 
Fecha de Ingreso: julio-2009
Mensajes: 84
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Duda con definicion de campo primario

hmm ya veo... gracias por la respuesta.. entonces no lo hago mal manejando las llaves tal cual como lo he hecho hasta ahora.
  #4 (permalink)  
Antiguo 30/10/2010, 15:37
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: Duda con definicion de campo primario

Exacto. Son muy puntuales los casos en que se requiere el uso de autoincrementales, y generalmente se da en la normalización, cuando se llega a la 3FN sin definir una clave candidata.
El otro único caso es cuando se trata de una única base de datos que no será usada como fuente de datos ni consolidará datos externos, jamás.
__________________
¿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: primario, campos
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 10:33.