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í.