Saltar al contenido

Significado de “n:m” y “1:n” en el diseño de bases de datos

Después de mucho trabajar hemos hallado el arreglo de esta obstáculo que muchos los usuarios de nuestro sitio tienen. Si deseas aportar algún detalle no dudes en dejar tu comentario.

Solución:

m:n se utiliza para denotar una relación de muchos a muchos (m objetos del otro lado relacionados con n por el otro) mientras 1:n se refiere a una relación de uno a muchos (1 objeto en el otro lado relacionado con n en el otro).

1:n significa ‘uno a muchos’; tiene dos tablas, y cada fila de la tabla A puede ser referenciada por cualquier cantidad de filas en la tabla B, pero cada fila en la tabla B solo puede hacer referencia a una fila en la tabla A (o ninguna en absoluto).

n:m (o n:n) significa ‘muchos a muchos’; cada fila de la tabla A puede hacer referencia a muchas filas de la tabla B, y cada fila de la tabla B puede hacer referencia a muchas filas de la tabla A.

Una relación 1:n generalmente se modela usando un simple extranjero key – una columna en la tabla A hace referencia a una columna similar en la tabla B, generalmente la principal key. Desde la primaria key identifica de forma única exactamente una fila, esta fila puede ser referenciada por muchas filas en la tabla A, pero cada fila en la tabla A solo puede hacer referencia a una fila en la tabla B.

Una relación n:m no se puede hacer de esta manera; una solución común es usar una tabla de enlaces que contenga dos key columnas, una para cada tabla que vincula. Para cada referencia entre la tabla A y la tabla B, se inserta una fila en la tabla de vínculos, que contiene los ID de las filas correspondientes.

n:m –> si no conoce tanto n como m, es simplemente muchos a muchos y está representado por una tabla puente entre otras 2 tablas como

   -- This table will hold our phone calls.
CREATE TABLE dbo.PhoneCalls
(
   ID INT IDENTITY(1, 1) NOT NULL,
   CallTime DATETIME NOT NULL DEFAULT GETDATE(),
   CallerPhoneNumber CHAR(10) NOT NULL
)

-- This table will hold our "tickets" (or cases).
CREATE TABLE dbo.Tickets
(
   ID INT IDENTITY(1, 1) NOT NULL,
   CreatedTime DATETIME NOT NULL DEFAULT GETDATE(),
   Subject VARCHAR(250) NOT NULL,
   Notes VARCHAR(8000) NOT NULL,
   Completed BIT NOT NULL DEFAULT 0
)

esta es la tabla puente para implementar Mapping entre 2 tablas

CREATE TABLE dbo.PhoneCalls_Tickets
(
   PhoneCallID INT NOT NULL,
   TicketID INT NOT NULL
)

One to Many (1:n) es simplemente una tabla que tiene una columna como principal key y otra tabla que tiene esta columna como extranjera key relación

Algo así como Producto y Categoría de producto donde una Categoría de producto puede tener Muchos productos

valoraciones y reseñas

Recuerda que te concedemos agregar una reseña si tropezaste tu dilema a tiempo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *