1
respuesta

[Duda] DUDA SOBRE CLAVES EXTERNAS Y CLAVES PRIMARIAS

Estimados, tengo las siguientes consultas: 1.- ¿Pueden dos tablas de una misma base de datos tener como clave primaria uno o mas campos con igual nombre y tipo de dato?

2.- Cuando defino una clave foranea ¿es lo mismo hacerlo en una direccion o en otra cuando la relacion es uno a uno? Es decir, seria porejemplo los mimo hacer:

ALTER TABLE items_facturas ADD CONSTRAINT FK_FACTURAS
FOREIGN KEY (NUMERO) REFERENCES FACTURAS(NUMERO);

que

ALTER TABLE facturas ADD CONSTRAINT FK_ITEM_FACTURAS
FOREIGN KEY (NUMERO) REFERENCES ITEM_FACTURAS (NUMERO);

3.- ¿Puede una tabla tener dos campos identificados al mismo tiempo como clave primaria?

4.- Cuando se pide crear la clave externa que vincula por ejemplo tb_producto con tb_items_facturas son equivalentes las siguientes soluciones:

ALTER TABLE tb_productos ADD CONSTRAINT FK_Items_Facturas
FOREIGN KEY (CODIGO) REFERENCES tb_items_facturas(CODIGO);

y

ALTER TABLE tb_items_facturas ADD CONSTRAINT FK_PRODUCTO
FOREIGN KEY (CODIGO) REFERENCES tb_producto(CODIGO);

O es que esta segunda solución sería solo aplicable en el caso en que se pidiera vincular por ejemplo tb_itens_facturas con tb_productos?

Gracias!

1 respuesta

Hola Estudiante,

¡Gracias por tu pregunta! Aquí están las respuestas a tus consultas:

1.-Sí, dos tablas en la misma base de datos pueden tener claves primarias con uno o más campos que tengan el mismo nombre y tipo de dato. Cada tabla tiene su propio contexto y definición de clave primaria, por lo que no hay conflictos entre ellas. La clave primaria se define para cada tabla de forma independiente y ayuda a garantizar la unicidad y la integridad de los datos en esa tabla.

2.-Sí, en una relación uno a uno, es equivalente definir una clave foránea en una tabla que apunta a otra, o definirla en la otra tabla que apunta hacia la primera. En este tipo de relación, ambas tablas están vinculadas de manera única. Puedes elegir cuál de las tablas tendrá la clave foránea que referencia a la otra, y cuál será la tabla referenciada. La elección puede depender de la semántica y la lógica de tu modelo de datos.

3.- Sí, en algunas bases de datos, como MySQL o PostgreSQL, es posible definir una clave primaria compuesta por dos o más campos. Una clave primaria compuesta significa que se requiere la combinación de los valores de ambos campos para identificar de manera única una fila en la tabla. Sin embargo, no todos los sistemas de gestión de bases de datos permiten claves primarias compuestas, por lo que la capacidad de hacerlo puede depender del sistema de bases de datos que estés utilizando.

4.-Sí, ambas soluciones son equivalentes en términos de establecer una clave foránea entre dos tablas. Ambas definiciones aseguran que el campo "CODIGO" en la tabla "tb_productos" está vinculado al campo "CODIGO" en la tabla "tb_items_facturas". La elección de cómo nombrar la restricción (FK_Items_Facturas o FK_PRODUCTO) es una cuestión de preferencia de nomenclatura. Puedes elegir un nombre que tenga sentido en el contexto de tu base de datos y que refleje la relación entre las tablas de manera clara y comprensible.

Recuerda que al establecer relaciones entre tablas utilizando claves primarias y claves foráneas, estás asegurando la integridad referencial de la base de datos, lo que ayuda a mantener la coherencia y la consistencia de los datos almacenados.

Espero que estas respuestas aclaren tus dudas. Si tienes alguna otra pregunta, no dudes en hacerla. ¡Estoy aquí para ayudarte!

Espero haber ayudado y buenos estudios!

Un saludo.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios