CREATE TABLE Phone
(
phoneID - PK
.
.
.
);
CREATE TABLE PhoneDetail
(
phoneDetailID - PK
phoneID - FK points to Phone
phoneTypeID ...
phoneNumber ...
.
.
.
);
CREATE TABLE Customer
(
customerID - PK
firstName
phoneID - Unique FK points to Phone
.
.
.
);
Ein Kunde kann mehrere Telefonnummern haben, z. B. Handy, Arbeit, usw. phoneID in der Tabelle Customer ist eindeutig und verweist auf PhoneID in der Tabelle Phone. Wenn ein Kundendatensatz gelöscht wird, sollte auch die PhoneID in der Tabelle Phone gelöscht werden.
Haben Sie irgendwelche Bedenken zu meinem Entwurf? Ist der Entwurf richtig? Mein Problem ist phoneID in der Tabelle Customer ist ein Kind und wenn Kind Datensatz gelöscht wird, dann kann ich kann ich den übergeordneten Datensatz (Phone) nicht automatisch löschen.