1.9k Aufrufe
Gefragt in Datenbanken von
Kann man eine Beziehung herstellen zwischen folgenden Daten:

Tabelle Besitzer: Tabelle Pferd: Tabelle Reitbeteiligung:
Ebner Debby Douglas (keine)
Maier Arogno (keine)
Mil Amores (keine)
Garnacha (keine)
Negro Bohemia (keine)
Ahrendt Simon Arendt, Anne
Handwerk, Regine
Kurz, Claudia
Steigerwald, Annika
Dürr Kelly Gauss, Susanna
Drewitz Alfa Gauss, Susanna
Dutschmann Womera Hickl, Melanie

Pferdebesitzer - Pferd
• Ein Pferdebesitzer kann ein oder mehrere Pferde haben
• Ein oder mehrere Pferde können einem Pferdebesitzer gehören

Besitzer – Reitbeteiligung
• Ein Besitzer kann keine, eine oder mehrere Reitbeteiligungen haben
• Eine Reitbeteiligung kann bei einem oder mehreren Besitzern Reitbeteiligung sein

Pferd - Reitbeteiligung
• Ein Pferd kann keine, eine oder mehrere Reitbeteiligungen haben
• Eine Reitbeteiligung kann bei einem Pferd oder mehreren Pferden Reitbeteiligung sein

Ich mache an dieser Sache schon jahrelang herum und komme nicht weiter. Selbst der Volkshochschullehrer konnte nicht die korrekte Beziehung herstellen. Die beste Verbindung die hergestellt werden konnte ist die, wo alles korrekt verbunden ist, nur werden die Daten der Besitzer nicht angezeigt, die keine Reitebeteiligung haben.

Die 3 Tabellen sind von links nach rechts zu lesen:
Ebener hat Pferd Debby Douglas, aber keine Reitbeteiligung
Maier hat die 4 Pferde Arogno, Mil Amores, Garnacha, Negro Bohemia aber keine Reitbeteiligung.
Ahrendt hat das Pferd Simon und die 4 Reitbeteiligungen Arendt, Anne, Handwerk, Regine, Kurz, Claudia und Steigerwald, Annika.
Dürr hat das Pferd Kelly und die Reitbeteiligung Gauss, Susanna.
Drewitz hat das Pferd Alfa und die gleiche Reitbeteiligung Gauss, Susanna.
Dutschmann hat das Pferd Womera und die Reitbeteiligung Hickl, Melanie.

Weiss irgendjemand wie man hier die korrekte Verbindung bzw. Beziehung herstellt?

4 Antworten

0 Punkte
Beantwortet von
Hallo Mahalath,

das sind doch wohl hoffentlich keine echten Daten oder?

Davon ausgehenend, dass jeder Vertrag über eine Reitbeteiligung auf ein bestimmtes Pferd ausgerichtet ist, würde ich die Datentabellen wie folgt aufbauen:

Tabelle Besitzer Tabelle Reiter
Name Vorname Adresse Telefonnr. Name Adresse Telefonnr.
Ebener xxx xxx xxx Arendt Anne xxx xxx
Maier xxx xxx xxx Handwerk Regine xxx xxx
Ahrendt xxx xxx xxx Kurz Claudia xxx xxx
Dürr xxx xxx xxx Steigerwald Annika xxx xxx
Drewitz xxx xxx xxx Gauss Susanna xxx xxx
Dutschmann xxx xxx xxx Hickl Melanie xxx xxx


Tabelle Pferde Tabelle Reitbeteiligung
Pferd Besitzer Vertragsnr Reiter Besitzer Pferd
Debby Douglas Ebener 1 Arendt Anne Ahrendt Simon
Arogno Maier 2 Handwerk Regine Ahrendt Simon
Mil Amores Maier 3 Kurz Claudia Ahrendt Simon
Garnacha Maier 4 Steigerwald Annika Ahrendt Simon
Negro Behemia Maier 5 Gauss Susanna Dürr Kelly
Simon Ahrendt 6 Gauss Susanna Drewitz Alfa
Kelly Dürr 7 Hickl Melanie Dutschmann Womera
Alfa Drewitz
Womera Dutschmann


Deine erste Tabelle wären damit die Pferde von der du dich auf den Besitzer, dann auf die Reitbeteiligung und schließlich auf die Reiter verknüpfst. Der SQL-Code für die Abfrage könnte z.B. in etwa so aussehen:

SELECT BESITZER.Name, BESITZER.Vorname, PFERDE.Pferd, REITBETEILIGUNG.Reiter FROM PFERDE INNER JOIN BESITZER ON BESITZER.Name = PFERDE.Besitzer LEFT JOIN REITBETEILIGUNG ON REITBETEILIGUNG.Pferd = PFERDE.Pferd LEFT JOIN REITER ON REITER.Name = REITBETEILIGUNG.Reiter

Wie du das in Access umsetzt bzw. ob es vielleicht eine andere bessere Lösung gibt, kann unser Datenbankexperte Paul dir besser sagen.

@Paul Ich gebe den Thread hier an dich ab, da ich keine Möglichkeit habe, den SQL-Code zu Testen. Dieser ist vielmehr aus dem Bauch heraus entstanden.

Mr. K.
0 Punkte
Beantwortet von
Hier nochmal die Tabellen. Klappt eben nicht immer mit der Code-Darstellung.

Tabelle Reitbeteiligung
Vertragsnr Reiter Besitzer Pferd
1 Arendt Anne Ahrendt Simon
2 Handwerk Regine Ahrendt Simon
3 Kurz Claudia Ahrendt Simon
4 Steigerwald Annika Ahrendt Simon
5 Gauss Susanna Dürr Kelly
6 Gauss Susanna Drewitz Alfa
7 Hickl Melanie Dutschmann Womera


Tabelle Pferde
Pferd Besitzer
Debby Douglas Ebener
Arogno Maier
Mil Amores Maier
Garnacha Maier
Negro Behemia Maier
Simon Ahrendt
Kelly Dürr
Alfa Drewitz
Womera Dutschmann
0 Punkte
Beantwortet von
Hallo Mr. K.,

Du hast hier eine Menge an Vorleistung erbracht, um das in Access zu testen, müsste ich eine Datenbank erstellen, was einen erheblichen Zeitaufwand darstellt.

Ich würde vorsichtig sein mich als Datenbankexperten zu bezeichnen, dafür fehlt noch einiges, trotzdem bedanke ich mich für Deinen Vertrauensvorschuß.

Um das erzeugen von Beziehungen verständlich zu machen einige Links und Tipps:

http://falk-weihmann.de/Access/bez.htm
https://www.teialehrbuch.de/Kostenlose-Kurse/Access-Basis-2003/4.1.26-Beispiel-90-Eine-1-N-Beziehung-mit-referentieller-Integrit%C3%A4t-definieren.html
@Mahalath, schau Dir die accesseigenen Datenbanken (besonders die Nordwind-Datenbank) an.

Gruß
Paul1

[sub]Excel > Access > MS-Office
MS Windows XP Professional SP3/32 Bit
MS Windows 7 Professional SP1/64 Bit
ECDL-Syllabus Version 4.0
IT-Security
FIBU/KORE/PV/KA/AB[/sub]
0 Punkte
Beantwortet von
Das heißt man hat maximal so eine Aufstellung :

Besitzer Pferd Reitbeteiligung
Müller, Josef Django Maier, Josefine
Müller, Josef Blacky Maier, Wanda
Müller, Josef Blacky HabKeinPferd, Giovanni
Müller, Josef Hugo keine
Schulz, Hans Tina keine

Ich würde jetzt mal versuchen, die erste Beziehung mit einer Abfrage abzubilden,
also Tabelle Besitzer mit Tabelle Pferd zu verbinden.
Dabei fällt auf, dass man in der Tabelle Pferd ebenfalls die Information "Besitzer" haben muss, sonst kann man die Tabellen nicht sinnvoll miteinander verbinden.
Das macht also nur Sinn, wenn man in der Tabelle Pferd noch weitere Pferdeinformationen speichern will.
Im zweiten Schritt kann man dann in einer weiteren Abfrage, die eben erzeugte Abfrage und die Tabelle Reitbeteiligung zueinander in Beziehung zu setzen.
Dazu muss also in der Tabelle Reitbeteiligung auch die Information "Pferd" vorhanden sein. Man stellt die Verknüpfungsart so ein, dass man alle Datensätze der Abfrage 1 hat und nur die passenden Datensätze aus Tabelle Pferd.
Im Ergebnis wird z.B. der Datensatz aus der Abfrage 1 mit Müller, Josef Blacky
durch die 2 Verknüpfungen Blacky zu Reitbeteiligung mehrmals angezeigt
und es ergibt sich genau das gewünschte Resultat.
Viel Spaß
Teddy
...