it-swarm.com.de

Bedeutung von "n: m" und "1: n" im Datenbankentwurf

Was bedeuten im Datenbankdesign n: m und 1: n

Hat es etwas mit Schlüsseln oder Beziehungen zu tun?

52
Abdullah Khan

m:n wird verwendet, um eine Viele-zu-Viele-Beziehung zu bezeichnen (m-Objekte auf der anderen Seite, die sich auf n auf der anderen Seite beziehen), während 1:n auf eine Eins-zu-Viele-Beziehung verweist (1-Objekt auf der anderen Seite, die sich auf n bezieht ).

71
Matti Virkkunen

1: n bedeutet "Eins-zu-Viele"; Sie haben zwei Tabellen, und jede Zeile der Tabelle A kann von einer beliebigen Anzahl von Zeilen in Tabelle B referenziert werden, aber jede Zeile in Tabelle B kann nur eine Zeile in Tabelle A referenzieren (oder keine).

n: m (oder n: n) bedeutet "viele-zu-viele"; Jede Zeile in Tabelle A kann auf viele Zeilen in Tabelle B verweisen, und jede Zeile in Tabelle B kann auf viele Zeilen in Tabelle A verweisen.

Eine 1: n-Beziehung wird normalerweise mit einem einfachen Fremdschlüssel modelliert - eine Spalte in Tabelle A verweist auf eine ähnliche Spalte in Tabelle B, normalerweise den Primärschlüssel. Da der Primärschlüssel genau eine Zeile eindeutig identifiziert, kann diese Zeile von vielen Zeilen in Tabelle A referenziert werden. Jede Zeile in Tabelle A kann jedoch nur auf eine Zeile in Tabelle B verweisen.

Eine n: m-Beziehung kann nicht auf diese Weise hergestellt werden. Eine gängige Lösung ist die Verwendung einer Verknüpfungstabelle, die zwei Fremdschlüsselspalten enthält, eine für jede verknüpfte Tabelle. Für jede Referenz zwischen Tabelle A und Tabelle B wird eine Zeile in die Verknüpfungstabelle eingefügt, die die IDs der entsprechenden Zeilen enthält.

45
tdammers

n: m -> wenn Sie sowohl n als auch m nicht kennen, sind es einfach zu viele und es wird durch eine Brückentabelle zwischen zwei anderen Tabellen dargestellt

   -- 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
)

dies ist die Brückentabelle zum Implementieren des Mappings zwischen zwei Tabellen

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

One to Many (1: n) ist einfach eine Tabelle mit einer Spalte als Primärschlüssel und einer anderen Tabelle mit dieser Spalte als Fremdschlüsselbeziehung

Art wie Produkt und Produktkategorie, in der eine Produktkategorie viele Produkte enthalten kann

6
Ash

Um die beiden Konzepte anhand von Beispielen zu erläutern, stellen Sie sich vor, Sie verfügen über ein Bestellsystem für einen Buchladen. Die Zuordnung von Bestellungen zu Artikeln ist sehr groß (n: m), da jeder Auftrag mehrere Artikel enthalten kann und jeder Artikel nach mehreren Aufträgen bestellt werden kann. Auf der anderen Seite ist eine Suche zwischen Kunden und Bestellungen eins zu viele (1: n), da ein Kunde mehr als eine Bestellung aufgeben kann, eine Bestellung jedoch niemals für mehr als einen Kunden.

3
Paul Tomblin

In einer relationalen Datenbank werden alle Arten von Beziehungen auf dieselbe Weise dargestellt: als Beziehungen. Die Kandidatenschlüssel jeder Beziehung (und möglicherweise auch andere Einschränkungen) bestimmen, welche Art von Beziehung dargestellt wird. 1: n und m: n sind zwei Arten von binären Beziehungen:

C {Employee*,Company}
B {Book*,Author*}

In jedem Fall bezeichnet * die Schlüsselattribute. {Buch, Autor} ist ein zusammengesetzter Schlüssel.

C ist eine Beziehung, in der jeder Mitarbeiter nur für ein Unternehmen arbeitet, aber jedes Unternehmen hat viele Mitarbeiter (1: n): B ist eine Beziehung, in der ein Buch haben kann - viele Autoren und ein Autor können viele Bücher schreiben (m: n):

Beachten Sie, dass die wichtigsten Einschränkungen sicherstellen, dass jeder Mitarbeiter nur einem Unternehmen zugeordnet werden kann, während jede Kombination von Büchern und Autoren zulässig ist.

Es sind auch andere Arten von Beziehungen möglich: n-ary (mit mehr als zwei Komponenten); feste Kardinalität (m: n, wobei m und n feste Konstanten oder Bereiche sind); Richtung; und so weiter. William Kent identifiziert in seinem Buch "Data and Reality" mindestens 432 Arten - und das nur für binäre Beziehungen. In der Praxis sind die binären Beziehungen 1: n und m: n sehr verbreitet und werden normalerweise als besonders wichtig für das Entwerfen und Verstehen von Datenmodellen herausgestellt.

3
nvogel

Viele bis viele (n: m) Eins bis viele (1: n)

1
Adrian Regan

m: n bezieht sich auf viele zu vielen Beziehungen Dabei bedeutet 1: n eine zu viele Beziehungen Zum Beispiel Angestellter (ID, Name, Skillset) Skillset (ID, Skillname, Qualifikationen)

in diesem Fall kann der eine Mitarbeiter über viele Fähigkeiten verfügen und andere Fälle ignorieren. Man kann sagen, dass es eine 1: N-Beziehung ist

0
Matovu Ronald