Ver Mensaje Individual
  #8 (permalink)  
Antiguo 16/10/2008, 15:25
jchuk
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Clave Principal - Ayuda

Hola, comparto todo lo dicho, una clave principal identifica unívocamente a cada fila de una tabla. Por ejemplo, una tabla con datos de Clientes podría tener por cada fila (cliente) un código de cliente, que ningún otro cliente (fila de esa tabla) podría tener igual. Ese código de cliente sería la clave principal.

Por otro lado, en otra tabla, por ejemplo Pedidos, donde se almacenan datos de pedidos, uno de los campos o columnas de esa tabla sería también el código de cliente, pero en esta tabla pedidos NO es clave principal, sino ajena o secundaria.

Se relacionarian las tablas clientes y pedidos por el código de cliente, que en clientes es clave principal y en pedido no, esto significa que en clientes solo podrá existir un cliente con la clave CT014, por ejemplo, pero en pedidos podría haber varios registros o filas donde apareciera el código de cliente CT014 lo que significaria que son pedidos del cliente con ese código de la tabla clientes.

Es decir, se establecería una relación de uno (clientes = solo un código) a varios (pedidos = varios códigos iguales).
Así mismo, el tener una clave principal en las tablas sirve también, y bajo mi punto de vista es muy importante, para mantener la integridad referencial entre las dos tablas que se relacionan a través del campo clave en una y el campo clave ajena en la otra.

Esa integridad referencial hará que en el ejemplo de los pedidos, no pueda haber pedidos en dicha tabla para clientes que no existan en la tabla de clientes, es decir no puede haber pedidos asignados a clientes que no existen.

Por esta razón, para mí, aunque no es obligatorio definir claves principales en las tablas, siempre explico a la gente donde doy clases que las claves principales son imprescindibles.

Espero haber aportado algo a este debate. Un saludo a todos