Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/10/2015, 16:55
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: Incluir primary key....¿cómo?

Creo que hay un error de entendimiento...
Toda tabla debe forzosamente poseer una clave primaria (PK), y esta puede ser creada con un campo o atributo propio de la entidad representada, o bien se le agrega (solucion de programadores) con un campo ID numérico.
Un campo "ID" numerico no es obligatorio, ni es tampoco obligatorio que sea PK. NO es lo mismo.
Una PK es un campo o conjunto de campos que identifica univocamente un registro unico en una tabla, pero ese identificador no necesariamente es numérico ni incremental. Puede ser cualquier campo o conjunto de campos de la tabla que cumplan con la definicion.
Cuando digo que en una tabla relacional no se le agrega un campo adicional a menos que un par de claves pueda repetirse, pero ESE PAR DE CLAVES ES PK EN ESA TABLA. Eso creia que había quedado claro.
A lo que yo me refería es que si se da que una relación N:M pueda repetir una clave en dos registros obligatoriamente hay que poner un discriminante en esa tabla, y que el discriminante pasa a ser parte de la clave primaria
Vale decir, en ese contexto, una PK de una tabla relacional est'a compuesta de tres componentes: 1) La PK de la primera tabla.
2) La PK de la segunda tabla.
3) Un campo propio de la relación que permita discriminar cada uno de los registros que comparten las otras dos claves.

Ese tipo de clave primaria compuesta NO NECESARIAMENTE requiere campos numéricos. Depender'a del caso especifico de lo que se diseña, cual el el campo que se usara de discriminante.
¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)