Hallo liebe Gemeinde,
hoffe ihr könnt mit weiterhelfen. Ich habe viel probiert und gelesen aber ich bekomme es einfach nicht hin. Ich habe 3 Tabellen (Tab1: Firmen, Tab2:Kunden, Tab3:Adressen). Was ich versuche ist das Tab1 und Tab2 beide auf die Adresstabelle Tab3 verweisen und beim Löschen von einem Eintrag in Tab1 oder Tab2 dann auch der entsprechende Eintrag in Tab3 gelöscht wird. Mein Ansatz ist grob unten gezeigt auf weitere Felder in den Tabellen wurde zwecks Übersichtlichkeit verzichtet:
// Tab1
CREATE TABLE Firmen (
ID VARCHAR (20) NOT NULL,
PRIMARY KEY (ID)
)
// Tab2
CREATE TABLE Kunden (
ID VARCHAR (20) NOT NULL,
PRIMARY KEY (ID)
)
// Tab3
CREATE TABLE Adressen (
ID VARCHAR (20) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (ID) REFERENCES Firmen(ID) ON DELETE CASCADE,
FOREIGN KEY (ID) REFERENCES Kunden(ID) ON DELETE CASCADE
)
Wenn ich nur einen Fremdschlüssel definiere geht es wie gewünscht doch leider nur für eine der beiden Elternklassen. Jemand eine Idee?
Gruß Toni
hoffe ihr könnt mit weiterhelfen. Ich habe viel probiert und gelesen aber ich bekomme es einfach nicht hin. Ich habe 3 Tabellen (Tab1: Firmen, Tab2:Kunden, Tab3:Adressen). Was ich versuche ist das Tab1 und Tab2 beide auf die Adresstabelle Tab3 verweisen und beim Löschen von einem Eintrag in Tab1 oder Tab2 dann auch der entsprechende Eintrag in Tab3 gelöscht wird. Mein Ansatz ist grob unten gezeigt auf weitere Felder in den Tabellen wurde zwecks Übersichtlichkeit verzichtet:
// Tab1
CREATE TABLE Firmen (
ID VARCHAR (20) NOT NULL,
PRIMARY KEY (ID)
)
// Tab2
CREATE TABLE Kunden (
ID VARCHAR (20) NOT NULL,
PRIMARY KEY (ID)
)
// Tab3
CREATE TABLE Adressen (
ID VARCHAR (20) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (ID) REFERENCES Firmen(ID) ON DELETE CASCADE,
FOREIGN KEY (ID) REFERENCES Kunden(ID) ON DELETE CASCADE
)
Wenn ich nur einen Fremdschlüssel definiere geht es wie gewünscht doch leider nur für eine der beiden Elternklassen. Jemand eine Idee?
Gruß Toni