mysql-muchos
Relación uno a uno
– Relación uno a muchos
– Relación muchos a muchos
Relaciones de uno a uno
Digamos que usted tiene una tabla para los clientes:

Podemos poner la información de la dirección del cliente en una tabla aparte:

Ahora tenemos una relación entre la tabla Customers y la tabla Addresses. Si cada dirección puede pertenecer a un solo cliente, esta relación es "Uno a uno". Tenga en cuenta que este tipo de relación no es muy común. Nuestra mesa inicial que incluía la dirección junto con el cliente podría haber trabajado bien en la mayoría de los casos.
Observe que ahora hay un campo denominado "address_id" en la tabla Customers, que hace referencia al registro coincidente en la tabla Address. Esto se llama una "clave foranea" y se utiliza para todo tipo de relaciones de base de datos. Abordaremos este tema más adelante en el artículo.
Podemos visualizar la relación entre el cliente y los registros de direcciones de la siguiente manera:

Tenga en cuenta que la existencia de una relación puede ser opcional, como tener un registro de cliente que no tiene registro de dirección relacionada.
Relaciones de uno a muchas y muchas a una
Este es el tipo de relación más comúnmente utilizado. Considere un sitio web de comercio electrónico, con lo siguiente:
- Los clientes pueden hacer muchos pedidos.
- Las órdenes pueden contener muchos artículos.
- Los artículos pueden tener descripciones en varios idiomas.
En estos casos, tendríamos que crear relaciones de "uno a muchos". Aquí hay un ejemplo:

Cada cliente puede tener cero, una o varias órdenes. Pero un pedido puede pertenecer a un solo cliente.

Muchas a muchas relaciones
En algunos casos, es posible que necesite múltiples instancias en ambos lados de la relación. Por ejemplo, cada pedido puede contener varios elementos. Y cada artículo puede también estar en órdenes múltiples.
Para estas relaciones, necesitamos crear una tabla adicional:

La tabla Items_Orders tiene un solo propósito, y es crear una relación "Muchos a muchos" entre los elementos y los pedidos.
Aquí está una manera de visualizar este tipo de relación:

Si desea incluir los registros items_orders en el gráfico, puede verse así:

Relación uno a uno
Una relación uno a uno permite que un solo registro de una tabla se relacione con un único registro de otra tabla.
Podría decirse que esta relación se realiza entre las llaves primarias de dos tablas.
Este tipo de relación se utiliza comúnmente en casos como el siguiente:
El empleado de una empresa le es asignado un número, este número es único.
Entonces en base de datos se tiene una tabla con los datos del empleado y otra tabla con los números de acceso.
Podría interesarte Crear relaciones entre tablas SQL Server
Relación uno a muchos
La relación uno a muchos o viceversa permite que un solo registro de una tabla se asocie con uno o varios registros de otra tabla.
Por lo tanto, la llave primaria de una tabla se enlazará a la llave foránea de otra tabla.
Las relaciones de este tipo son las que mas utilizamos, podremos verlo en el siguiente ejemplo:
En una biblioteca un autor puede tener uno o más libros.
Así que en la base de datos tenemos una tabla con los datos de los autores y otra tabla con los datos de los libros.
Relación muchos a muchos
Las relaciones muchos a muchos permiten que uno o varios registros de una tabla se relacionen con uno o varios registros de otra tabla.
Sin embargo, este tipo de relaciones no posible realizarlo en SQL Server de forma directa entre dos tablas, para realizar es necesario una tercera tabla.
Por lo tanto, las llaves primarias de las dos tablas que se relacionaran se enlazaran a las llaves foráneas de la tercera tabla.
Las relaciones muchos a muchos las utilizamos en casos como la siguiente:
El ticket de las compras del super, un cliente puede comprar varios productos y al mismo tiempo un producto puede ser comprado por varios clientes.
Podría interesarte Crear diagramas de base de datos SQL Server
Relaciones de uno a muchos
En una relación de uno a muchos, un registro de una tabla se puede asociar a uno o varios registros de otra tabla.. Por ejemplo, cada cliente puede tener varios pedidos de ventas.
Una relación de uno a muchos presenta el siguiente aspecto en el gráfico de relaciones:
En este ejemplo, el campo de clave principal de la tabla Clientes, ID de cliente, se ha diseñado para contener valores exclusivos. El campo de clave externa de la tabla Pedidos, ID de cliente, se ha diseñado para permitir varias instancias del mismo valor.
Esta relación devuelve registros relacionados cuando el valor del campo ID de cliente de la tabla Pedidos es el mismo que el valor del campo ID de cliente de la tabla Clientes.
Como las relaciones son bidireccionales, también hay relaciones de muchos a uno.
Si bien, las relaciones 1 a muchos dependen de un campo que apunta de una tabla hacia otra, a la que llamamos llave foránea, las relaciones muchos a muchos requieren de otras formas y estrategias.
============================================================
Relación muchos a muchos
Debes tener claro las llaves primarias y una tabla de unión para que se produzca la relación muchos a muchos ejemplo: Esto quiere decir que debe existir una tabla con la que se pueda relacionar entre otras para tener conexión con la tabla principal. |
Si bien, las relaciones 1 a muchos dependen de un campo que apunta de una tabla hacia otra, a la que llamamos llave foránea, las relaciones muchos a muchos requieren de otras formas y estrategias.
Piensa por un momento en un ejemplo de una relación muchos a muchos, intenta traer una tú mismo, considera que normalmente leemos una relación de este tipo como que una entidad A tiene muchos elementos de una entidad B, y a su vez, B puede tener muchos elementos de A.
Si te ayuda, te daré un ejemplo, un canal de YouTube puede tener muchos suscriptores, y a su vez cada suscriptor puede estar suscrito a muchos canales de YouTube, y ahí lo tienes, una relación de muchos a muchos.
Si se te ocurrió alguna otra, déjala en los comentarios para ayudar a reforzar el concepto de tus compañeros de clase, voy a estar leyendo los ejemplos que coloquen.
En una base de datos relacional, las relaciones muchos a muchos suelen representarse a través de una tabla asociativa.
Una relación de muchos a muchos se produce cuando varios registros de una tabla se asocian a varios registros de otra tabla. Por ejemplo, existe una relación de muchos a muchos entre los clientes y los productos: los clientes pueden comprar varios productos y los productos pueden ser comprados por muchos clientes.
Por lo general, los sistemas de bases de datos relacionales no permiten implementar una relación directa de muchos a muchos entre dos tablas. Tenga en cuenta el ejemplo de seguimiento de facturas. Si había muchas facturas con el mismo número de factura y uno de sus clientes preguntó acerca de ese número de factura, no sabría a qué número se refería. Este es el motivo por el que se debe asignar un valor exclusivo a cada factura.
Para evitar este problema, puede dividir la relación de muchos a muchos en dos relaciones de uno a muchos mediante el uso de una tercera tabla denominada tabla de unión. Cada registro de una tabla de unión incluye un campo de coincidencia que contiene el valor de las claves principales de las dos tablas que se unen. (En la tabla de unión, estos campos de coincidencia son claves externas). Estos campos de clave externa se rellenan con datos, ya que los registros de la tabla de unión se crean desde cualquiera de las tablas que se unen.
Un ejemplo típico de una relación de muchos a muchos es aquella entre los estudiantes y las clases. Un estudiante puede matricularse en muchas clases y una clase puede incluir muchos estudiantes.
En el siguiente ejemplo, se incluye una tabla Alumnos, que contiene un registro para cada estudiante, y una tabla Clases, que contiene un registro para cada clase. Una tabla de unión, Matrículas, crea una relación de uno a muchos, una entre cada una de las dos tablas.

La clave principal ID de estudiante identifica de forma exclusiva a cada estudiante de la tabla Alumnos. La clave principal ID de clase identifica de forma exclusiva cada clase de la tabla Clases. La tabla Matrículas contiene las claves externas ID de estudiante e ID de clase.
Para configurar una tabla de unión para una relación de muchos a muchos:
1.Mediante el uso del ejemplo, anterior, cree una tabla denominada Matrículas. Esta será la tabla de unión.
2.En la tabla Matrículas, cree un campo ID de estudiante y un campo ID de clase.
Por lo general, las tablas de unión contienen campos que no tienen sentido en otras tablas. Puede añadir campos a la tabla Matrículas, como un campo Fecha para mantener un registro de cuándo alguien inició una clase y un campo Coste para rastrear cuánto pagó un estudiante por realizar una clase.
3.Cree una relación entre los dos campos ID de estudiante de las tablas. A continuación, cree una relación entre los dos campos ID de clase de las tablas.
Mediante este diseño, si un estudiante se matricula en tres clases, ese estudiante tendrá un registro en la tabla Alumnos y tres registros en la tabla Matrículas: un registro para cada clase en la que se ha matriculado el estudiante.
Notas
•Las tablas de unión pueden acceder a los campos y los datos entre tablas sin necesidad de crear una relación diferente. Por ejemplo, para visualizar una lista de todas las clases en las que se ha matriculado un estudiante, cree un portal en una presentación en función de la tabla Alumnos. Diseñe el portal para que muestre registros relacionados de la tabla Clases. A continuación, añada los campos adecuados de Clases al portal. A medida que se desplaza por los registros de la presentación Alumnos, el portal muestra todas las clases en las que se ha matriculado un estudiante específico.
Problemas y solución para las relaciones Muchos a muchos
Las relaciones Muchos a muchos no son recomendables y debemos tratar de evitarlas utilizando TABLAS INTERMEDIAS en las que se utilizarían relaciones de uno a muchos. Una tarea sencilla como podría ser obtener un listado de todos los profesores que imparten clases en 1ºB se convierte en una verdadera pesadilla si mantenemos esta relación. La solución pasa por crear una TABLA INTERMEDIA que nos permita dividir la relación MUCHOS A MUCHOS en dos relaciones UNO A MUCHOS como puedes ver en la figura 2.34.











Comentarios
Publicar un comentario