Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/07/2008, 05:27
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: 16 años, 5 meses
Puntos: 2658
Respuesta: Se pueden poner dos primarias en la misma tabla en phpmyadmin?

Sintetizando:
1. Una clave primaria es un campo o conjunto de campos que identifica unívocamente un registro. Por default, es UNIQUE y NOT NULL. Siempre.

2. Una clave primaria también crea también lo que se denomina "indice denso" o "cluster", el cual se usa para mantener el ordenamiento físico de los registros (su ordenamiento en secuencia en el disco), por lo cual es imposible crear más de uno porque no es posible ordenar físicamente el archivo de dos formas distintas. ¿Te imaginas una biblioteca cuyos libros pudieran estar ordenados de dos formas distintas en el mismo estante al mismo tiempo? Es imposible.

3. Una clave foránea es lo que su nombre indica: es una clave "de afuera", lo que implica que ese valor proviene de una CLAVE de otra tabla. Pero por clave se entiende PRIMARY KEY, no campo INDEX... Es decir, solamente se pueden crear FK si el campo referido es PK en la otra tabla. No sirve un campo usado como INDEX, UNIQUE o TREE. Debe ser PK.

4. No existe impedimento para que una tabla tenga múltiples FK. De hecho se puede hacer que sólo se componga de FK y hasta que algunos de ellos actúen como PK de esa tabla.

5. Los campos usados de INDEX, HASH, TREE o UNIQUE pero no PK crean índices dispersos o no cluster y se usa para gestionar ordenamientos distintos al PK para el acceso a los datos; salvo los UNIQUE, los demás incluso pueden tener múltiples indicaciones de registros en la misma entrada de índice (como los múltimples significados de una palabra en un diccionario).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)