Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/02/2007, 05:16
Rascayu
 
Fecha de Ingreso: junio-2004
Mensajes: 43
Antigüedad: 19 años, 11 meses
Puntos: 0
Duda sobre Claves primarias auto_increment

Hola, tengo una duda existencial y no es sobre qué hay después de la muerte. Igual mis conocimientos de Bases de Datos están obsoletos pero no veo claro el uso de un campo auto_increment como clave primaria para una tabla. Os explico:

Ya tengo una tabla cuya clave primaria es un varchar que pensaba que sería único (EQUIPO):
EQUIPO - CATEGORIA
Equi1 - Junior
Equi2 - Junior
Equi3 - Senior

Bien, ahora tengo que meter un nuevo campo "supervisor de equipos" por lo que puede haber casos de existir el mismo equipo - Categoria

EQUIPO - CATEGORIA - SUPERVISOR
Equi1 - Junior - super1
Equi2 - Junior - super1
Equi3 - Senior - super1
Equi1 - Junior - super2

Supongo que declarando clave primaria (equipo,categoria,supervisor) MySQL garantizará que no existan claves duplicadas pero por comodidad para mí, me resultaría más sencillo tener una clave primaria auto_increment ya que luego tengo que utilizar esa clave primaria en otra tabla como foreign key y veo más fácil utilizar un sólo campo que 3 (equipo,categoria,supervisor).

Así que mi idea de la tabla queda:

ID - EQUIPO - CATEGORIA - SUPERVISOR
1 - Equi1 - Junior - super1
2 - Equi2 - Junior - super1
3 - Equi3 - Senior - super1
4 - Equi1 - Junior - super2


Según veo, ahora tengo que declarar como clave primaria ID o bien (id,equipo,categoria,supervisor). Declare como declare la clave primaria he visto que puedo hacer inserciones "malintencionadas" en la BD ya que el ID es autoincrement y nunca existirán claves duplicadas: Ejemplo:

4 - Equi1 - Junior - super2
5 - Equi1 - Junior - super2

Obviamente, puedo comprobar antes que no existan estos 3 campos repetidos (equipo,categoria,supervisor) pero ¿Cual sería la mejor manera de declarar la clave primaria y saber que MySQL me garantice que no existan claves duplicadas?

Un saludo.