Kreuztabelle - Ich weiß nicht weiter

tgam

tgam

Aktives Mitglied
Thread Starter
Dabei seit
15.02.2008
Beiträge
1.317
Reaktionspunkte
171
Hallo!

Mich quält seit Wochen ein Problem und erhoffe mir hier nun Rat + Hilfe = Lösung:)

Ich habe eine einfache Datenbank mit Filemaker Pro 13 angelegt, die im wesentlichen auf zwei Basistabellen beruht: "Kunden" und "Projekte". Bei den Projekten handelt es sich im wahren Leben um Musikveranstaltungen. Nun kann ich jedem Kunden mehrere Projekte zuordnen, eine 1:n Beziehung; soweit, so gut. Aber ich will darüber hinaus, dass ich einem Projekt wiederum mehrere bis beliebig viele zusätzliche Adressen zuordnen kann, und zwar die der unterschiedlichen Veranstaltungsorte. Diese Adressen will ich aus derselben Tabelle beziehen, aus der bereits die Kundenadresse stammt.

Mittlerweile habe ich alle Variationen durchprobiert, die mir eingefallen sind. Aber ich bekomme das nicht hin, weil in der hierarchischen Abfolge nun einmal der Kunde an erster Stelle steht, und jeder Versuch, weitere Adressen aus demselben Stamm hinzuzufügen führt bestenfalls zu natürlich unerwünschten Verdoppelungen.

Mit anderen Worten: ich verstehe es nicht, bin aber sicher, dass die Lösung eine sehr einfache sein muss. Ich erkenne sie nur nicht, wohl ein Fall von Synapsenblockade. Hilfe wäre fantastisch!

Mit Dank und besten Grüßen,

Thomas
 
hi,
schau mal hier, da kannst du ein beispiel herunterladen
http://www.wendland-design.de/seiten/beispieldateien.html

kreuztabelle.png
 
Vielen Dank für die Mühe, aber das zeigt leider nicht die Lösung, die ich suche. Wie man Tabellen auf diese Weise verbindet, ist mir grundsätzlich schon klar; aber mir geht es konkret um etwas spezielleres: Adressen -> Projekte -> mehrere Adressen. In dieser Reihenfolge. Das heißt, was in deinem Beispiel das Produkt ist, wäre bei mir das Projekt, und dein Kunde meine Adresse. Mein Kunde eröffnet ein Projekt, ist mit dem verbunden über die IDs; dann will ich im Projekt, das der Adresse hierarchisch ja beigeordnet ist, wiederum frei auf die Adressen zugreifen können.

Vielleicht geht es ja auch nicht; vielleicht ist das in meiner Dramaturgie falsch angelegt. Aber ich will eben vermeiden, dass ich für die Kundenadressen und die Veranstaltungsorte zwei verschiedene Tabellen benötige, denn beide enthalten ja unter Umständen identische Adressdaten...

Nochmals danke,

mit besten Grüßen,

Thomas
 
aber mir geht es konkret um etwas spezielleres: Adressen -> Projekte -> mehrere Adressen. In dieser Reihenfolge.
Zwischen "Projekte" und "mehrere Adressen" gehört die Kreuztabelle - dort werden soviele Datensätze mit der Projekt_ID und den unterschiedlichen Adress_ID angelegt, wie es Veranstaltungsort für das Projekt gibt....

Gruß,
Thomas
 
Vielen Dank, aber "mehrere Adressen" ist keine eigene Tabelle, das wa vielleicht missverständlich ausgedrückt. Vielmehr sollen es Adressen aus eben er Tabelle sein, aus der sich bereits der Kunde herleitet. Wenn ich nun beispielsweise die Adresstabelle dupliziere und als Kreuztabelle dazwischen schiebe, ändert sich eigentlich nichts, denn ich will ja vom Kunden aus ein Projekt anlegen können, und da ist dann das Keuztabellenduplikat lediglich dazwischen geschoben, reagiert aber so, als ob es eine direkte Verbindung zwischen Adressen und Projekte gäbe. Ich schätze, dass ich hier an dieser Stelle etwas sehr einfaches nicht verstehe, den Wald vor lauter Bäumen nicht sehe....

Bislang sieht das Diagramm so aus wie auf dem Screenshot; ich bin mit dieser Konstruktion in der Lage, vom Kunden aus ein Projekt anzulegen, dessen Inhalte aus einem Materialstamm bezogen wird. Dann kann ich jedem Projekt beliebige Aufgaben zuteilen und auch von den einzelnen Aufgaben aus wiederum auf den Kunden bzw. das originale Material zugreifen.

Ich möchte nun, dass ich ebenso dem Projekt beliebige zusätzliche Adressen zuteilen kann, ohne aber eine zweite Tabelle mit Adressen aufmachen zu müssen. Referiere ich aber auf die bestehende, egal , in welcher Weise, klappt das nicht oder will den Datensatz verdoppeln....Bildschirmfoto 2015-01-20 um 21.25.40.jpg

Mit besten Grüßen,

Thomas
 
du hast vermutlich im moment deine kunden-id direkt im datensatz deiner projekt-tabelle gespeichert, um die relation herzustellen. das ist der fehler. die verbindung von einem projekt zum kunden darf nur in einer weiteren tabelle stehen, eben in der kreuztabelle. dort stehen in einem datensatz beide ids, die vom kunden und die vom projekt. im grunde benötigt die kreuztabelle gar keine weiteren felder. wenn jetzt weitere kunden zum projekt dazukommen sollen, dann musst du halt weitere datensätze in der kreutabelle erzeugen.
dein datenmodell musst du daher etwas umstellen, neu organisieren
 
Und genau das verstehe ich eben nicht... Wenn ich eine solche "Zwischentabelle" mache, und dann von den Adressen auf diese leite, kann ich via Adressentabelle in der Projekte-Tabelle keinen neuen Datensatz anlegen. Erlaube ich das aber, dann erscheint in der Projekttabelle in der zur Kreuztabelle verlinkten Ausschnittliste der dem Projekt zugeordnete Kundendatensatz. Zusätzliche Adressdatensätze dort beizugeben ist dann nicht möglich. Ich bin sicher, dass ich irgendetwas sehr einfaches falsch mache. Ich drehe noch durch....
 
Oft geht etwas schief, weil zu viel gewollt wird.
Gehe zu den Basics. Es gibt Kunden mit Adressen. Es gibt Veranstaltungsorte mit Adressen. Die Adressen dürften jeweils unterschiedlich sein.
Kundentabelle und Tabelle der Veranstaltungsorte Über eine Kreuztabelle verbunden, müsste Bei Wahl eines passenden Datensatzes der Kreuztabelle ein gescheites Ergebnis zeigen.
 
das kreuztabellen-modell geht zunächst davon aus, dass kunden und projekte vorher schon angelegt wurden. wenn du hier direkt im kundendatensatz ein neues projekt anlegen willst, dann geht das nur über scripts
 
Da darf ich dich korrigieren: In der Tat geht das auch ohne Script; es reicht die Verbindung über die Schlüsselhierarchie.
 
Dank euch allen

für die Unterstützung. Problem ist gelöst! Was ich nicht verstanden hatte war, dass die Kreuzverbindung nur dann funktioniert, wenn die Schlüssel-IDs nicht identisch sind, sondern einander untergeordnet werden; ansonsten hat man die 1:1 Beziehung. Im Nachhinein ist das immer so klar und ich wundere mich, nicht schon früher darauf gekommen zu sein...:)
 
Zurück
Oben Unten