Heim >Datenbank >MySQL-Tutorial >Wie soll ich Listen verwandter Daten in einer relationalen Datenbank speichern?

Wie soll ich Listen verwandter Daten in einer relationalen Datenbank speichern?

Linda Hamilton
Linda HamiltonOriginal
2024-12-27 01:12:10331Durchsuche

How Should I Store Lists of Related Data in a Relational Database?

Speichern von Listen in Datenbankspalten: Ein Leitfaden zum normalisierten relationalen Datenbankdesign

Das Speichern hierarchischer Daten, wie z. B. Listen, in einer Datenbankspalte kann eine Herausforderung sein. Betrachten wir ein Szenario, in dem Sie ein Objekt FOO speichern möchten, das eine Liste von Früchten enthält, und in dem Früchte in einer separaten Tabelle gespeichert werden.

In einer normalisierten relationalen Datenbank wird nicht empfohlen, eine Liste direkt zu speichern in einer Spalte. Dies führt zu Problemen bei der Datenintegrität und erschwert die effektive Verwaltung und Abfrage der Daten. Stattdessen sollten Sie eine Verbindungstabelle erstellen, die das FOO-Objekt mit den Früchten in Beziehung setzt.

Entwerfen des Datenbankschemas

Erstellen Sie die folgenden Tabellen:

  • FOO: Ganzzahlspalten für das FOO-Objekt Attribute.
  • Früchte: Ganzzahlspalte für die Frucht-ID und eine Zeichenspalte für den Fruchtnamen.
  • FOOFruits: Diese Verbindungstabelle verknüpft FOO-Objekte mit Früchten. Es enthält zwei Spalten: FruitID und FooID.

Beispielschema:

CREATE TABLE FOO (
  id int primary key not null,
  int1 int,
  int2 int,
  int3 int
);

CREATE TABLE Fruits (
  id int primary key not null,
  name varchar(30)
);

CREATE TABLE FOOFruits (
  FruitID int references Fruits (ID),
  FooID int references FOO(id),
  constraint pk_FooFruits primary key (FruitID, FooID)
);

Auffüllen der Daten

Um eine Frucht zur Liste eines FOO-Objekts hinzuzufügen, fügen Sie eine Zeile in die FOOFruits ein Tabelle:

INSERT FOOFruits(FooID, FruitID)
SELECT 5, ID FROM Fruits WHERE name = 'Apple';

Vorteile des normalisierten Designs

  • Bewahrt die Datenintegrität, indem sichergestellt wird, dass die Früchte in der Liste gültig sind.
  • Erleichtert das Abfragen und Verwalten der Daten durch die Aufteilung in kleinere, zusammenhängende Tabellen.
  • Bietet Flexibilität für zukünftige Änderungen in der Datenstruktur.

Das obige ist der detaillierte Inhalt vonWie soll ich Listen verwandter Daten in einer relationalen Datenbank speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn