una paso pagina libro español ejemplo datos crear conectar con como mysql database database-design entity-relationship one-to-one

paso - Decidir la clave externa al implementar una relación uno a uno en MySQL



pagina web con base de datos mysql (1)

Tengo dos tablas simples "artículos" y "pedidos". En aras de la simplicidad, supongamos que un elemento solo puede estar en un orden o un pedido solo puede contener un elemento.

Ahora, como esto se puede implementar utilizando una relación uno a uno simple, puedo hacer lo siguiente:

Puedo agregar la clave principal de la tabla de pedidos a la tabla de artículos como a continuación

//Table Items item_id, item_name, order_id 1, shoes, 1 2, watch, 2 //Table Orders order_id, customer 1, James 2, Rick

o puedo agregar la clave principal de la tabla de artículos a la tabla de pedidos como se muestra a continuación

//Table Items item_id, item_name 1, shoes 2, watch //Table Orders order_id, customer, item_id 1, James, 1 2, Rick, 2

¿Cuál es correcto y por qué? ¿Hay alguna guía para decidir qué tecla va a dónde? Seguro que el sentido común funcionará en los ejemplos simples que se mencionaron anteriormente, pero en los ejemplos complejos, ¿cómo decidimos?


Las relaciones de uno a uno generalmente se deben fusionar simplemente en una tabla. Si no hay contradicciones, la relación uno a uno podría ser un signo de una decisión no considerada.

Y si realmente desea utilizar este tipo de relación, depende totalmente de usted dónde colocar a FK. Es posible que desee tener en cuenta la opcionalidad al aplicar FK. Sin embargo, en MySQL, todavía no será una verdadera relación uno a uno porque las claves diferidas no son compatibles allí.