PDA

Vollständige Version anzeigen : m:n Beziehung


Jonny_Bayern
20.03.2004, 14:01
Hallo Forum,

hab hier ein Problem mit Beziehungen. Irgenwie blicke ich da nicht durch.
Es gibt 2 Tabellen:
tblArchitekten
tblFirmen

Ein Architekt betreut mehrere Firmen. D.h. im Form wird der Architekt ausgewählt und seine Firmen werden eingegeben (ufo).
ABER: Eine Firma wird manchmal auch von mehrern Architekten betreut.

Nun habe ich begonnen bei den Architekten die Firmen einzugeben, und diese werden auch im Unterdatenblatt (firmen) richtig angezeigt.
Sehe ich mir aber die tabelle Firmen an, so sieht man, dass (logischer Weise) einige Firmen mehrfach gespeichert werden.

Was mache ich da bloß falsch???
Irgendwie schnalle ich das nicht.....

Bin für jede Hilfe sehr dankbar.

gruß
jonny

Scrap
20.03.2004, 14:12
ich denk mal firmid und arch id sind autowerte?

dann solltest du beim zuweisen der firma direkt ein kombi/listenfeld anbieten, in dem alle "bekannten" firmen drinstehen, wenn dort keine auswahl getroffen wurde, legst du einen neuen datensatz an

zusätzlich könntest du eine sicherheitsabfrage machen, in der art von:
lege neuen datensatz an (also keine firma ausgewählt)
schau nach, ob paramter bereits in der db vorhanden sind (zb firmanename, adresse etc)
wenn ja: frag nach, ob die firma wirklich neu angelegt werden soll
wenn nein: klege neuendatensatz an

Jonny_Bayern
20.03.2004, 14:14
....es muss aber später ersichtlich sein:
architekten und all seine firmen
und
firmen die bei mehreren architekten vorkommen (und welchen)

gruß

Johnny Loser
20.03.2004, 14:18
Hi Jonny,

in Deiner Tabelle Tabelle Firmen gibt es ein Feld ArchID; ist wohl mehr ein Versehen, oder?

Anyway, ich kann mir nicht vorstellen, daß es Dir gelingt in einem Unterformular Firmen zu Deinen Architekten (im Hauptformular) anzulegen.

Die Verbindung zwischen Firmen und Architekten wird über Deine m:n-Tabelle aufgebaut.

Dies bedeutet, daß Du zuerst einen Architekten (unabhängig) erstellen mußt, dann eine Firma (ebenfalls unabhängig) erstellen mußt und anschließend erst die Verknüpfung dieser beiden in Deiner Verknüpfungstabelle realisierst.

Oder einfacher gesagt, Du kannst zu einem Architekten nur Firmen auswählen, die existieren. Andersrum genauso.

Scrap
20.03.2004, 14:26
hmm, schliesst mein tip das aus?
das ist doch eher ein prblem, wie du die tabellen später auswertest, oder?

zb:
SELECT FirmID from tblFirmArch WHERE ArchID =
und umgekehrt

oder du arbeitest mit dem inner join (dank an fenir *g*)
(siehe http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=122376)

@jonny_looser
wenn firmid autowert ist, und er meine vorgeschlagene sicherheitsabfrage nutzt, dann kann er doch das ganze automatisieren, oder?
zb bei "wenn nein: lege neuen datensatz an" hinzufügen schreibe dessen firmid gleich in tblFirmArch

oder lieg ich da falsch?

Johnny Loser
20.03.2004, 14:44
@Scrap

erstmal halte ich Autowerte für die Verwendung in Schlüsselfeldern nicht grade geeignet, aber das beruht auf meinen eigenen Erfahrungen, die mich Tage meines Lebens gekostet haben.

Anyway, ich wollte eigentlich nur darlegen, daß es nicht möglich ist, in einem Formular Architekten ein Unterformular Firmen zu verknüpfen, wo die zugehörigen Firmen angelegt werden können. Die Firma kann nur unabhängig erstellt und anschließend erst über die Verknüpfungstabelle dem oder den Architekten zugeordnet werden.

Wie das ganze jetzt programmtechnisch realisiert wird, da gibt's unendlich viele Möglichkeiten. Auf einem oder mehreren Formularen, mit Unterformularen, Listboxen, etc., je nach dem, was in der Anwendung "more user friendly" ist.

Eine Sicherheitsabfrage macht Sinn, sofern es strikte Regeln zum Anlegen von Neukunden gibt, da schon bei einem Tippfehler die ganze Sache nicht mehr funktionieren kann. Die übliche Vorgehensweise zum Anlegen eines Neukunden ist doch das vorherige Suchen, ob er existiert (nach Name, PLZ, Stadt, etc.) , somit wird eine anschließende Sicherheitsabfrage überflüssig.

Scrap
20.03.2004, 14:58
erstmal halte ich Autowerte für die Verwendung in Schlüsselfeldern nicht grade geeignet, aber das beruht auf meinen eigenen Erfahrungen, die mich Tage meines Lebens gekostet haben.


deine kontras würden mich interessieren, einfach nur um mir die tage zu ersparen *g* gern auch per email oder pn, um den thread hier nicht fehlzuleiten


Anyway, ich wollte eigentlich nur darlegen, daß es nicht möglich ist, in einem Formular Architekten ein Unterformular Firmen zu verknüpfen, wo die zugehörigen Firmen angelegt werden können. Die Firma kann nur unabhängig erstellt und anschließend erst über die Verknüpfungstabelle dem oder den Architekten zugeordnet werden.


und da hab ich gehofft, das man mit entsprechender strukturierung flexibel genug sein könnte. ist ja auch nur ein formular, wenn auch ein eingebettetes.

aber du hast recht: es wäre einfacher einen button zum hauptformular hinzuzufügen
wenn man die firma nicht gefunden hat, dan drückt man den und legt sie neu an, bevor man im "alten" form weiterarbeitet


sicherheitsabfrage:

eigentlich meinte ich das gleiche, das du als "suche, ob er existiert" bezeichnest, nur halt mehr automatisiert

das problem tipfehler ist doch aber so oder so da, oder?
macht jemand beim neuanlegen einen (vielleicht nicht so offentsichtlich wie beim firmennamen) kommt es schnell zu mehrfachen einträgen...

das hab ich nämlich auf kosten meiner lebenstage gelernt:
betrachte jeden user als dau (dümmster anzunehmender user), nur dann hast du das projekt irgendwann fertig *g*
und man kann nicht genug absichern...

Jonny_Bayern
20.03.2004, 14:59
danke für eure Beiträge,

@JonnyLoser
Das problem liegt darin, dass zuerst der Architekt gewählt werden muss.
Diesem Werden dann Firmen eingegeben.
Hintergrund: kann sein, dass ein architekt (der schon firmen hat) ein paar wochen später wieder eine liste mit firmen schickt. dann muss also der archtitket ausgewählt werden und dann "neue firma eingeben".
Gleichzeitig sollte aber erkennbar sein (wie auch immer) wenn eine firma auch von anderen architekten betreut wird.
hab schon angefangen die db kann hier angesehen werden (http://www.valentic.de/anita) login: anita, pw: anitab

da schau dir mal die tabelle architekten an, die firmen im unterdatenblatt sind schön vorhanden.
der 2 und 3. te architekt haben aber die selben firmen. Also sieht man in der tblFirmen schön diese Firmen 2x!!!! (und das ist zum abk....)

...und ich komme ums verrecken nicht weiter.

gruß
jonny

Johnny Loser
20.03.2004, 16:37
Hi Jonny,

schick mir doch mal ein Mail, damit ich Dir die DB zurückschicken kann.