Hallo zusammen,
ich habe folgendes in meiner Datenbank abgebildet :
Tabelle A hat einen Primären Schlüssel auf dem Feld "Certificate". Dazu gibt es 4 weitere Tabellen (Tabelle B, C, D, E), wo ebenfalls das Feld "Certificate" enthalten ist. In diesen 4 Tabellen kann ich das Feld "Certificate" aber nicht auf einen Schlüssel setzen, da dieses Referenzetabellen zur Tabelle A sind. Das heißt also, der Wert aus dem Feld "Certificate" der 4 Tabellen kommt öfters vor. Dazu habe ich noch einen Fremdschlüssel auf das Feld "Certificate" in den vier Tabellen eingebaut mit Reference auf den Primary Key aus Tabelle A. Damit habe ich erreicht, dass wenn ich einen Eintrag aus Tabelle A lösche, alle Einträge in den vier Tabellen mit dem gleichen Wert aus dem Feld "Certificate" ebenfalls gelöscht werden.
Nun möchte ich, dass wenn in Tabelle B ein Wert gelöscht wird, auch die Werte aus Tabelle D gelöscht werden :
Code:
CREATE TABLE B (
ID INTEGER NOT NULL,
CERTIFICATE VARCHAR(15) NOT NULL,
STARTDATE INTEGER NOT NULL,
ENDDATE INTEGER NOT NULL,
HOURSPERWEEK FLOAT NOT NULL,
GROUNDS VARCHAR(255));
Code:
CREATE TABLE D (
ID INTEGER NOT NULL,
CERTIFICATE VARCHAR(15) NOT NULL,
BID INTEGER NOT NULL,
DATESTART INTEGER NOT NULL,
DATEEND INTEGER NOT NULL,
LABORCONTENT BLOB SUB_TYPE 1 SEGMENT SIZE 16384 NOT NULL);
Ich kann jetzt natürlich im Quelltext zweimal eine
Query mit dem entsprechenden DELETE-Befehl aufrufen für die jeweilige Tabelle.
Meine Frage ist aber kann ich das eventuell auch über einen Fremdschlüssel lösen, wie ich das mit Tabelle A und den vier weiteren Tabellen gelöst habe ? Wenn ja wie ?
Oder muss ich meine Datenbankstruktur nochmals überdenken ?