Keine Lösung ohne dass ein Zylus in Tabellebeziehungen entsteht

SebbL85

Registriert
Thread Starter
Dabei seit
09.06.2010
Beiträge
4
Reaktionspunkte
0
Hallo zusammen! =)

Ich habe folgendes Problem ...

Im Moment arbeite ich an einer Softwarelizenz-Verwaltung in der es "Rechner" gibt, die "Klone" enthalten können. Die "Klone" definieren eine gewisse Auswahl von Software. Ein Rechner kann jedoch neben der durch den Klon bestimmten Softwareauswahl auch noch für sich spezifische Software enthalten.

Diese Problemstellung habe ich soweit auch in meinem Entwurf gelöst, jedoch habe ich dafür zwei Instanzen der Tabelle "Programme" erstellt (-> "Programme" und "Programme_Klon").

Ich wollte ursprünglich nur Beziehungen mit "Programme" erzeugen, jedoch entstand dadurch ein Zyklus in den Tabellenbeziehungen und FileMaker hat gemeckert.


Wenn ich mir nun ein Layout erstelle in dem ich anzeigen möchte, welches Programm auf welchen Rechnern und welchen Klonen enthalten ist, bekomme ich hier Probleme.

Ich kann mich ja auf eine der beiden Instanzen ("Programme" oder "Programme_Klon") beziehen.


Ich hoffe ihr könnt in etwa nachvollziehen worauf ich hinaus möchte und könnt mir vielleicht weiterhelfen!

Das wäre mir wirklich eine große Hilfe! Schonmal vielen Dank!



Gruß

Sebastian
 
Du solltest auf die verschiedenen Instanzen von Programme verzichten.
Du solltest auf die Klone verzichten. Die haben doch keine Entsprechung in der wirklichen Welt.
Die Mitarbeiter bleiben im Moment mal außen vor.

Eigentlich brauchst Du eine Tabelle Programme (mit m Einträgen) und eine Tabelle Rechner (mit n Einträgen), also eine übliche m:n Relation.
Und die brauchst die berühmte Kreuztabelle, die die beiden Tabellen verbindet.

Anschließend enthält die Relationsgrafik vielleicht noch die Hälfte der Einträge.

Ob dann noch eigene Tabellen für Programmhersteller, Programme oder CDKey benutzt werden, ist eine Frage, die unabhängig von der m:n Frage später noch geklärt werden kann.
 
Zuletzt bearbeitet:
Erst einmal Danke für deine schnelle Antwort!

Auf die Instanzen von Programme und dem Klon möchte ich eigentlich nicht verzichten, da sie durchaus ihren Zweck erfüllen bzw. in der Praxis relevant sind. Vielleicht wird dir/euch das im Folgenden etwas klarer ...


Die beiden Instanzen von "Programme" (-> "Programme 2" und "Programme 3") dienen in einem Layout (in dem man durch die Rechner gehen kann) dazu, dass man beispielsweise bei der Angabe, dass es sich um einen Mac handelt, bei den Betriebssystemen nur noch die dazu Passeden (also z.B. nur die verschiedenen OSX Versionen, ohne die Windows Varianten) in einer Enblendliste dargestellt bekommt. Dies ist der einzige Grund dafür und das funktioniert auch soweit.

Der Klon beschreibt eine bestimmte Zusammenstellung von Programmen. Das hat den Hintergrund, dass wir auf der Arbeit nicht jeden neuen Rechner "von Hand" neu aufsetzen, mit Hilfe einer Klon-Software einen einen bereits Vorhandenen "klonen".



Ich möchte gerne am Schluss verschiede Layouts haben ...

Eins an dem ich durch die verschiedenen Rechner gehen kann und den dazughörigen Klon, die Programme im Klon und die speziellen Programme des Rechners angezeigt bekomme. Das habe ich bereits umgesetzt und es funktioniert auch soweit wie ich mir das vorstelle (ich lasse natürlich auch noch die anderen Rechnerangaben anzeigen, aber dass iss ja in dem Zusammenhang eher weniger relevant).

Und jetzt komme ich zu meinem Problemteil ...

Ich möchte ein Layout haben in dem ich durch die verschiedenen Programme gehen kann und die Rechner angezeigt bekomme, auf denen sie entweder innerhalb eines Klons vorkommen oder eben nur rechnerspezifisch installiert sind. Am tollsten wäre es wenn ich eine Ausschnittstabelle (Ausschnittswerkzeug) im Layout hätte, in dem alle Rechner aufgelistet werden auf denen das entsprechende Programm vorhanden ist. Und wenn das Programm innerhalb eines Klons auf diesem Rechner vorhanden ist soll in einer seperaten Spalte der entsprechende Klon angegeben werden.

Aber im Grunde würde es mir auch schon genügen, wenn ich die beiden Auflistungen überhaupt erstmal in ein Layout packen könnte. Es könnten dann auch zwei Ausschnittstabellen sein (eine für die Rechner auf denen sie innerhalb eines Klons vorkommen und einmal für die Rechner auf denen sie direkt vorkommen). Jedoch stoße ich hier ja auf mein bereits beschriebenen Problem mit dem Zyklus in den Tabellenbeziehungen. Ich weiß nicht wie ich das anders Lösen kann.


Ich hoffe dass es dadurch etwas verständlicher geworden ist! Danke für die Hilfe!



Gruß

Sebastian
 
Probleme sehen von außen - also von mir aus - immer anders aus, als von innen - also von Dir aus. Für Deine Struktur mag es gute Gründe geben, die mir jetzt nicht so triftig erscheinen.

Nur noch einige Hinweise:
Bei den Klons scheint es so zu sein, dass identische Daten in mehreren Tabellen enthalten sind (zb Programme_Klon). Eigentlich wird so etwas vermieden.

Bei der gewünschten Ansicht für ProgrammXY und der Auflistung aller Rechner, auf denen es installiert ist, müsste ein Layout auf der Basis der Tabelle Programme bestehen mit einem Ausschnitt, in dem Daten der Tabelle Rechner auftauchen.
Wenn dies nicht gelingt, stimmt etwas mit der Kreuztabelle nicht.
 
Ja klar. Und es ist auch schwierig sowas in Worte zu fassen, dass es ein anderer 100%ig begreift was man mit was erzielen möchte. Von daher ... =)

"Programme_Klon" dürfte wenn ich das hier richtig verstanden und umgesetzt habe keine neue eigenständige Tabelle sein, sondern es ist nur eine weitere Instanz der Tabelle "Programme" und bezieht sich demensprechend auch auf ihre Daten.

Das was du in deinem unteren Absatz beschreibst ist eigentlich der Status an dem ich momentan bin. Ich kann die Rechner von einer Software darstellen auf denen sie direkt installiert ist ("Programme" als Basis), aber ich kann im gleichen Layout nicht auch die Rechner darstellen, auf denen ein Klon mit dem Programm vorhanden ist ("Programme_Klon" müsste ja dann als Basis sein). Wenn ich jetzt die Instanz "Programme_Klon" entferne und alles nur auf "Programme" referenziere, dann bekomme ich ja wie schon erwähnt diesen Zyklus innerhalb der Tabellenbeziehungen.

Gruß Sebastian
 
Programme_Klon muss eine andere Tabelle als Programme sein, sonst hätte sie denselben Namen, ggf. würde sie in der Grafik zb Programme4 heißen.

Wenn Du Rechner und Klone in verschiedenen Tabellen verwaltest, macht deren Darstellung in einem Ausschnitt Probleme.
 
Achso, wenn es der Name iss, der dich stört ...
"Programme_Klon" hieß vorher "Programme 4" oder so. Ich habe einfach nur den Namen geändert. Aber die Benennung dürfte ja keinen Einfluss darauf haben, ob es sich um eine eigene Tabelle oder nur um eine Instanz einer Tabelle handelt. Oder etwa doch!?

Gruß Sebastian
 
Wenn ich es richtig Verstanden habe hast du ein Beziehungsproblem.

Als Beispiel eine Rechnung:
Tabelle 1 = Rechnungskopf (ID RE_Nr, Kund_Nr)
Tabelle 2 = Rechnungsartikel(ID RE_Nr, Kund_Nr,Art_Nr)
Tabelle 3 = Artikel(ID Art_Nr)
Tabelle 4 = Kunden(ID Kund_Nr)


Beziehungen:
Tabelle 1 steht in Beziehung mit
Tabelle 4 über das Feld Kund_Nr und mit
Tabelle 2 über das Feld RE_Nr

Tabelle 2 steht in Beziehung mit
Tabelle 3 über das Feld Art_Nr

Jetzt kannst du dir im Kunden-Layout alles Anzeigen lassen was du möchtest.

In einem ausschnitt z.b.: alle Rechnungen für diesen Kunden mit den Daten aus der Tabelle 1
In einem weiteren ausschnitt alle Daten aus der Tabelle 2.

In dem Artikel-Layout kannst du dir wieder alles anzeigen lassen.
Welcher Kunde hat diesen Art. Gekauft.
In welchen Rechnungen kommt dieser Artikel vor usw.


Hoffe es Hilft etwas fürs bessere Verständnis.

Mit freundlichen Grüßen
Norbert
 
Zurück
Oben Unten