Mehrfach vorkommende Daten bei n:m-Tabellenbeziehungen

29.03.2004

Frage:

Ich erstelle gerade in Access 2000 eine Medien-Datenbank. Dabei handelt es sich um eine Datenbank, mit der ich alle meine CD's, sowie die darauf enthaltenen Lieder erfassen möchte.

Zu diesem Zweck habe ich 3 Tabellen angelegt. In der Tabelle "CD's" wird der Titel der jeweiligen CD gespeichert. In der Tabelle "Songs" werden alle Lieder erfasst. Die beiden Tabellen habe ich über eine m:n Beziehung miteinander verknüpft (Verknüpfungstabelle "Songdetails"), da ein Lied ja auf mehreren CD's vorkommen kann (Studio-Album, Live-CD etc.), umkehrt aber auch eine CD mehrere Lieder enthält. Orientiert habe ich mich bei der Erstellung der Beziehung an der Beispieldatenbank Nordwind, wo die Tabellen "Bestellungen" und "Artikel" über die Verknüpfungstabelle "Bestelldetails" verbunden sind (m:n Beziehung). Es hat auch alles einwandfrei funktioniert.

Es gibt da jedoch ein Problem, wenn ich ein und dasselbe Lied mehrmals auf einer CD habe (Live-Aufnahmen von verschiedenen Konzerten). Als ich das Lied zum zweiten Mal für die gleiche CD erfassen wollte, wurde mir folgende Fehlermeldung angezeigt: "Die von Ihnen vorgenommenen Änderungen an der Tabelle konnten nicht vorgenommen werden, da der Index, Primärschlüssel oder die Beziehung mehrfach vorkommende Elemente enthalten würde. Ändern Sie die Daten in den Feldern, die gleiche Daten enthalten, entfernen Sie den Index, oder definieren Sie den Index neu, damit doppelte Einträge möglich sind, und versuchen Sie es erneut". Dieselbe Fehlermeldung erscheint auch bei der Beispieldatenbank Nordwind, wenn man in dem Formular "Bestellungen" unter Artikel mehrmals den gleichen Artikel auswählt. Ich hoffe Sie können mir bei der Lösung dieses Problems behilflich sein.

Antwort:

Für dieses Problem gibt es zwei Lösungen:

  1. Sie fügen der Tabelle "Songdetails" einen neuen Primärschlüssel hinzu (z.B. "SongdetailNr"). Der aus den beiden Feldern "SongNr" und "CDNr" bestehende, zusammengesetzte Primärschlüsse wird dadurch ersetzt. Hierdurch wird auch die Regel außer Kraft gesetzt, dass ein Song auf einer CD nur ein einmal vorhanden sein darf.

  2. Sie fügen der Tabelle "Songdetails" noch das Feld "TrackNummer" hinzu. Dieses Feld fügen Sie dem zusammengesetzten Primärschlüssel hinzu. Wenn Sie nun z.B. einen Song zweimal auf einer CD haben, unterscheiden sich die beiden Datensätze trotzdem noch, da z.B. die erste Version das. 5. Lied und die zweite Version das 8. Lied ist. Der Nachteil dieser Lösung: Sie müssen auch die bereits vorhandenen Daten überarbeiten und hier eine TrackNummer eingeben.

Nummer 1) wäre die schnelle und Nummer 2) die bessere Lösung, da Sie damit auch die Position eines Liedes auf der CD festhalten können).

Dienstleistungen

Als starker Partner an Ihrer Seite unterstützen wir Sie in folgenden Breichen:

Access-Programmierung

Benötigen Sie Unterstützung bei der Programmierung von Access-Anwendungen? Wir bieten die gesamte Bandbreite von der Access-Programmierung auf Stundenbasis bis zur Durchführung eines Software-Projektes als Auftragsarbeit an. Kontaktieren Sie uns für ein kostenloses Erstgespräch.

Software-Beratung

Haben Sie ein Software-Projekt und Sie wissen nicht, ob Access die richtige Plattform ist? Wir haben über 20 Jahre Erfahrung beim Erstellen von Windows-, Web und mobilen Anwendungen. Kontaktieren Sie uns für eine kostenlose Erstberatung.