Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: pahiti78 am August 14, 2014, 15:27:18

Titel: Löschen eines Datensatzes mit allen Verküpfungen
Beitrag von: pahiti78 am August 14, 2014, 15:27:18
Hallo,
ich habe drei Tabellen:
tbl_Mitarbeiter
tbl_Telefonnummern
tbl_link_Mitarbeiter_Telefonnummer

In der Linktabelle werden die Schlüssel der beiden anderen Tabellen gespeichert. Verküpft sind alle Tabellen mit referentieller Integrität. Lösch- und Aktualisierungsweitergaben sind ebenfalls aktiviert.

Mein Problem ist, wenn ich ein Telefondatensatz löschen möchte, soll der entsprechende Datensatz Mitarbeiter weiterhin bestehen. Es soll also nur in der Tabelle tbl_Telefonnummern und tbl_link_Mitarbeiter_Telefon gelöscht werden. Das klappt auch so.

Wenn ich allerdings einen MitarbeiterDatensatz lösche, sollen alle entsprechenden Datensätze in der tbl_link_Mitarbeiter_Telefon und auch der Datensatz der Telefonnummer (in Tabelle tbl_telefonnumer) gelöscht werden.

Meine ursprüngliche Idee ist sämtliche Löschabfragen zu erstellen. Das scheint mir zu aufwendig und auch zu risikolastig. Wie kann ich so etwas sonst umsetzen?
Danke :)
Titel: Re: Löschen eines Datensatzes mit allen Verküpfungen
Beitrag von: Wurliwurm am August 14, 2014, 16:56:31
Wenn Du mit Löschweitergabe einen Mitarbeiter löscht, müßten die Einträge aus link_Mitarbeiter_Telefon gelöscht werden. Die Telefonnummern bleiben stehen. Das soll ja auch so sein, weil die Telefonnummern in deinem Datenmodell eine eigene Entität haben (genauso wie die Kinder nicht sterben, wenn die Eltern sterben).

Du modellierst offensichtlich eine M:N beziehung in der link-Tabelle. Das heißt, das eine Telefonnummer auch mehreren Mitarbeitern zugeordnet werden kann. Das ist m.E. nicht sinnvoll. Die dritte Tabelle mit den Telefonnummern braucht es m.E. nicht.
Titel: Re: Löschen eines Datensatzes mit allen Verküpfungen
Beitrag von: Wurliwurm am August 19, 2014, 12:54:30
<gelöscht<

falscher Threat

Df6gl, Moderator