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

Se pueden poner dos primarias en la misma tabla en phpmyadmin?

Estas en el tema de Se pueden poner dos primarias en la misma tabla en phpmyadmin? en el foro de Mysql en Foros del Web. Se pueden poner dos primarias en la misma tabla en phpmyadmin? Estoy intentando poner foraneas y no me deja y eso que las tablas son ...
  #1 (permalink)  
Antiguo 30/07/2008, 02:57
 
Fecha de Ingreso: enero-2008
Mensajes: 61
Antigüedad: 16 años, 2 meses
Puntos: 0
Se pueden poner dos primarias en la misma tabla en phpmyadmin?

Se pueden poner dos primarias en la misma tabla en phpmyadmin?

Estoy intentando poner foraneas y no me deja y eso que las tablas son innodb, me la crea como index y no como foreign key y solo me crea una y no las dos.
  #2 (permalink)  
Antiguo 30/07/2008, 03:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Se pueden poner dos primarias en la misma tabla en phpmyadmin?

No.

Puedes poner solo una primaria, esta podria ser compuesta pero no serian dos primarias si no una.

Lo que si puede haber són claves alternativas, es decir campos que como la PK su contenido és único y no nulo, esto lo forzaras creando un indice unico sobre el campo y agregando le la condición de not null.

Quim
  #3 (permalink)  
Antiguo 30/07/2008, 05:27
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, 4 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)
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 12:19.