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:
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
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!