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
Freigeben: 2024-12-27 01:12:10
Original
322 Leute haben es durchsucht

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)
);
Nach dem Login kopieren

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';
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage