Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Unter einer reflexiven Beziehung versteht man eine solche Beziehung, bei der man die Datensätze einer Tabelle den Datensätzen der gleichen Tabelle unterordnen kann. Damit kann man dann beispielsweise Kategorien mit beliebig vielen Unterkategorien abbilden. Um solche Daten zu verwalten, gibt es im Wesentlichen zwei verschiedene Arten: Entweder man fügt der Tabelle selbst ein Feld hinzu, mit dem man festlegen kann, welchem anderen Datensatz der aktuelle Datensatz untergeordnet ist. Oder man realisiert die reflexive Beziehung über eine externe Tabelle. Wir schauen uns an, wie Sie diese beiden Varianten realisieren können.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 2001_ReflexiveDatenInTabellen.accdb.
Reflexive Daten am Beispiel von Kategorien
Unsere erste Beispieltabelle zeigt die einfachste Variante der reflexiven Beziehung (siehe Bild 1). Sie enthält ein Primärschlüsselfeld und ein Feld zum Eintragen der Bezeichnung der Kategorie. Außerdem enthält sie ein Feld namens ParentKategorieID mit dem Datentyp Zahl.
Bild 1: Entwurf der Tabelle mit Verknüpfung auf sich selbst
Dieses Feld soll mit dem Wert des Feldes KategorieID eines übergeordneten Datensatzes gefüllt werden. Um sicherzustellen, dass dieses Feld keine Werte annimmt, die nicht im Feld KategorieID der Tabelle enthalten sind, legen wir eine entsprechende Beziehung an.
Dazu öffnen Sie über den Ribbon-Eintrag Datenbanktools|Be-zie-hun-gen|Be-zie-hun-gen das Beziehungen-Fenster und fügen die Tabelle tblKategorien zwei Mal hinzu. Die zweite Instanz dieser Tabelle im Beziehungen-Fenster wird dann tblKategorien_1 genannt (siehe Bild 2).
Bild 2: Verknüpfung der Tabelle mit sich selbst
Nun ziehen Sie das Feld ParentKategorieID aus der Tabelle tblKategorien_1 auf das Feld KategorieID der Tabelle tblKategorien. Es erscheint direkt der Dialog Beziehung bearbeiten. Hier klicken Sie die Option Mit referentieller Integrität an und schließen den Dialog wieder. Danach erscheint die Beziehung zwischen den beiden Instanzen der gleichen Tabelle wie in Bild 3. Damit können Sie den Dialog nun schließen.
Bild 3: Darstellung der Verknüpfung
Beispieldaten eingeben
Nun geben wir einige Beispieldatensätze in die Tabelle tblKategorien ein. Hier können Sie für das Feld ParentKategorieID nun nur noch solche Werte eingeben, die bereits im Feld KategorieID vorhanden sind. Um dies zu testen, geben wir wie in Bild 4 einmal einen Wert für das Feld ParentKategorieID ein, der gar nicht in der Tabelle enthalten ist.
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo