Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

2.5.7 1:1-Beziehungen

2.5.8 Reflexive Beziehungen

Reflexive Beziehungen sind Beziehungen, die Datensätze einer Tabelle mit Datensätzen der gleichen Tabelle verknüpfen. Dabei enthalten die verknüpften Datensätze meist unterschiedliche Rollen, etwa Vorgesetzter und Untergebener. Dabei handelt es sich prinzipiell um eine klassische 1:n-Beziehung - es befindet sich lediglich die gleiche Tabelle auf beiden Seiten.

Reflexive Beziehungen (manchmal auch rekursive Beziehungen genannt) können auch über eine Zwischentabelle hergestellt werden. Auf diesem Wege erhalten Sie dann eine reflexive m:n-Beziehung, bei der Sie jeden Datensatz der Tabelle mit beliebigen anderen Datensätzen der gleichen Tabelle verknüpfen können.

Reflexive 1:n-Beziehungen

Die Tabelle in Abbildung 2.65 greift das oben genannte Beispiel der Beziehung zwischen Mitarbeitern und Vorgesetzten auf. Dazu enthält die Tabelle tblMitarbeiterMitVorgesetzte ein Feld namens VorgesetzterID mit dem Datentyp Zahl.

Abbildung 2.65: Entwurf einer Tabelle mit reflexiver Beziehung

Wer nun versucht, den Nachschlage-Assistenten zum Erstellen der gewünschten Beziehung zu bewegen, wird feststellen, dass dieser nur andere Tabellen zum Erstellen von Beziehungen anbietet, aber nicht die, für die eine Beziehung erstellt werden soll.

Hier ist also Handarbeit angesagt: Öffnen Sie also den Beziehungen-Dialog und fügen Sie die Tabelle tblMitarbeiterMitVorgesetzten hinzu. Da sich auch dieser Dialog etwas bockig anstellt, wenn man die Tabelle mit sich selbst verknüpfen möchte, hilft nur noch ein Trick: Fügen Sie eine zweite Instanz der Tabelle hinzu, indem Sie die Tabelle tblMitarbeiterMitVorgesetzten noch einmal einfügen.

Anschließend können Sie die Beziehung wie bei einer normalen 1:n-Beziehung hinzusetzen; auch referentielle Integrität lässt sich problemlos festlegen (siehe Abbildung 2.66). Das Aktivieren der Löschweitergabe ist übrigens nicht zu empfehlen - wenn beim Löschen des Chefs auch gleich alle Untergebenen aus der Datenbank verschwinden, wird der neue Chef nicht besonders glücklich sein ...

Informationen über die Anzeige von Datensätzen, die in reflexiver Beziehung zueinander stehen, finden Sie in Kapitel 4, »Formulare«, Abschnitt 4.5.12.

Abbildung 2.66: Rekursive Beziehungen lassen sich im Beziehungen-Fenster nur über mehrere Instanzen derselben Tabelle anlegen

Reflexive m:n-Beziehungen

Weniger bekannt, da sehr selten verwendet, sind reflexive m:n-Beziehungen. Eines der rar gesäten Beispiele sind die Teile einer Produktdatenbank. Ein Produkt besteht aus mehreren Teilen, die wiederum aus anderen Teilen zusammengesetzt sind. Hier werden also nicht nur Endprodukte verwaltet, die aus hunderten von Einzelteilen bestehen, sondern auch Baugruppen, die Bestandteil anderer Baugruppen sind und wiederum weitere Baugruppen enthalten können.

Warum reicht hier eine reflexive 1:n-Beziehung nicht aus? Ganz einfach: Weil ein Teil oder eine Baugruppe nicht einer anderen Baugruppe, sondern mehreren Baugruppen als Bestandteil zur Verfügung stehen soll. Und wie realisieren Sie eine reflexive m:n-Beziehung? Wie eine ganz normale m:n-Beziehung! Der einzige Unterschied ist, dass Sie zwei Instanzen der Tabelle tblProdukte statt zwei unterschiedliche Tabellen verwenden (siehe Abbildung 2.67).

Abbildung 2.67: Reflexive m:n-Beziehung

Die Verknüpfungstabelle enthält - da die Namen der Primärschlüsselfelder beider verknüpften Tabellen gleich sind - Fremdschlüsselfelder mit Namen, die den Datensätzen der verknüpften Tabellen gleichzeitig die Rolle in der Verknüpfung zuweisen. In diesem Fall ist das übergeordnete Element die Baugruppe und das untergeordnete Element ein Teil. Zusätzlich enthält die Verknüpfungstabelle ein Feld namens Anzahl, damit man festlegen kann, wie viele Teile einer Sorte die Baugruppe enthält.

Nächster Abschnitt:

2.6 Autowerte als Long oder GUID?

© 2006-2008 André Minhorst Alle Rechte vorbehalten.