Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Relación 1-N en la creación de llaves foráneas...

Hola

Tengo una duda con respecto a la creación de llaves foráneas.

Cuando se ejecuta el comando:

ALTER TABLE tb_venta ADD CONSTRAINT FK_CLIENTE FOREIGN KEY (DNI) REFERENCES tb_cliente(DNI);

y luego se hace el diagrama de las tablas de la base de datos ventas_jugos, observo que existe una relación 1-N entre cliente y venta. Quiero saber cómo identificar esta relación en el comando o si tiene alguna relación con el orden en que se crean las tablas.

2 respuestas

Hola Miguel, cómo va?

En el caso que has mencionado, la relación 1-N entre la tabla de cliente y la tabla de venta se establece a través del campo DNI. La creación de la llave foránea se realiza con el comando ALTER TABLE, donde se agrega una restricción (ADD CONSTRAINT) con la anotación FK_CLIENTE (o el nombre que elijas) y se especifica la FOREIGN KEY que se conecta con la tabla de clientes a través del campo DNI, haciendo referencia a la tabla tb_cliente en el campo DNI respectivamente.

En cuanto al orden en que se crean las tablas, no tiene relación directa con la identificación de la relación en el comando. La relación se establece mediante la definición de la llave foránea en la tabla que la necesita, independientemente del orden en que se creen las tablas.

Si este post te ayudó, por favor, marca como solucionado ✓.

Hola Erika,

Ahora entiendo el comando para crear la llave foránea. Pero me gustaría confirmar si lo que tendí es correcto.

En una relación 1-N (uno a muchos), ¿se da porque en la tabla tb_cliente, la columna DNI es la clave primaria y, por lo tanto, debe ser única (sin duplicados), mientras que en la tabla tb_venta, la columna DNI no tiene la restricción de unicidad, permitiendo que haya múltiples registros con el mismo DNI? ¿Es este el motivo por el cual se establece una relación 1-N?

Y si la relación entre las tablas fuera 1-1 (uno a uno), ¿entonces la columna DNI tendría que ser la clave primaria en ambas tablas para garantizar que cada registro en una tabla tenga exactamente una correspondencia en la otra?

Gracias por tu ayuda.