n:m-Beziehung verwenden?

Moderator: ModerationP

n:m-Beziehung verwenden?

Beitragvon ClausM » 21. Nov 2019, 13:59

Hallo,

ich habe noch nie mit n:m-Beziehungen gearbeitet und wollte mich vorab versichern nicht auf dem falschen Weg zu sein.
Es existiert bereits eine Kundentabelle. Diesen Kunden sollen jetzt mehrere Lieferanschriften zugewiesen werden.

Ich wollte jetzt eine Tabelle mit ID und Anschrift anlegen und danach eine zweite für die Verbindung zwischen Kunde und Lieferanschrift.
Als Primärschlüssel in der Verknüpfungstabelle einen zusammen gesetzten Schlüssel aus Kundennummer und Lieferanschrift-ID anlegen.

Wäre das so korrekt?

Es gibt (hausinterne) Anschriften, welche jedem Kunden zugeordnet werden können.
Wie setzte ich dies um?

Schon einmal vorab vielen Dank für alles was kommt.

Ciao
Claus
ClausM
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 103
Registriert: 16. Mär 2019, 10:28

Re: n:m-Beziehung verwenden?

Beitragvon uwms » 21. Nov 2019, 14:14

Hallo Claus,

so z.B.

rel.PNG


Grüße aus Münster
UWe
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
uwms
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 256
Registriert: 20. Nov 2015, 14:44

Re: n:m-Beziehung verwenden?

Beitragvon KlausMz » 21. Nov 2019, 15:09

Hallo,
eine n:m braucht es da nicht, denn eine Anschrift kann ja nur für einen Kunden zutreffen.
Daher genügt in der Tabelle mit den Anschriften ein Fremdschlüsselfeld zum Kunden.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 39832
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: n:m-Beziehung verwenden?

Beitragvon ClausM » 21. Nov 2019, 15:17

eine n:m braucht es da nicht, denn eine Anschrift kann ja nur für einen Kunden zutreffen.

Leider nicht, die Lieferanschrift (muss nicht zwangsläufig die Kundenanschrift sein) kann für mehrere Kunden zutreffen.
ClausM
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 103
Registriert: 16. Mär 2019, 10:28

Re: n:m-Beziehung verwenden?

Beitragvon knobbi38 » 21. Nov 2019, 15:30

Hallo Klaus,

ist schon richtig, ein Kunde kann u.U. n Standorte haben und damit meine ich nicht Lieferadressen!

Gruß Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2798
Registriert: 02. Jul 2015, 14:23

Re: n:m-Beziehung verwenden?

Beitragvon KlausMz » 21. Nov 2019, 15:35

Hallo,
unter den Bedingungen wäre n:m natürlich richt.
Dann passt das auch so.
Allerdings würde ich dann noch eine Tabellefür PLZ und Ort anlegen und nur den PS dieser TAbelle dann als FS bei der Anschrift speichern.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 39832
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: n:m-Beziehung verwenden?

Beitragvon ClausM » 21. Nov 2019, 16:32

Okay, aber wie mache ich das mit den Anschriften die für alle Kunden zur Verfügung stehen sollen?
Ich möchte ja nicht bei allen Kunden diesen manuell diese Anschriften zuordnen.
ClausM
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 103
Registriert: 16. Mär 2019, 10:28

Re: n:m-Beziehung verwenden?

Beitragvon KlausMz » 21. Nov 2019, 17:25

Hallo,
die Frage verstehe ich jetzt nicht. Gibt es Anschriften die für alle Kunden gelten ?
Sindd as dann immer die gleichen Anschriften ?

Das musst Du mal genauer erklären.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 39832
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: n:m-Beziehung verwenden?

Beitragvon knobbi38 » 21. Nov 2019, 19:14

Hallo,

man kann das über eine m:n Tabelle abwickeln, aber ich tendiere auch zum ersten Ansatz von Klaus, ohne diese Zuordnungstabelle auszukommen.
Wenn man mal gedanklich Anschrift durch Standort austauscht, dann kann man diesen Standort per Fremdschlüssel dem Kunden zuordnen (1:n). Die Redundanz, eine Anschrift zweimal in der Standorttabelle zu haben, sollte kein Beinbruch sein.

Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2798
Registriert: 02. Jul 2015, 14:23

Re: n:m-Beziehung verwenden?

Beitragvon ClausM » 22. Nov 2019, 12:00

Hallo,

die Frage verstehe ich jetzt nicht. Gibt es Anschriften die für alle Kunden gelten ?


Es gibt ein (Druck)Kontingent. Dieses wird auf mehrere Standorte verteilt.
Die Standorte können nur für einen Kunden gelten, es können auch mehrere Kunden sein.
Diese könnte man im obigen Fall dem Kunden manuell zuweisen.
Für das Controlling, Fakturerstellung etc. gibt es noch (hausinterne) Standorte, welche in der Regel auch (eine unbestimmte Anzahl) Exemplare erhalten.
Diese (hausinterne) Standorte sollten grundsätzlich ausgewählt werden können.
D. h., für den Kunden gibt es einen Druckauftrag. Die gedruckte Auflage wird auf mehrere Standorte aufgeteilt.
Die Standorte die für den Kunden ausgewählt werden können sind: Die Standorte sein, die explizit dem Kunden zugewiesen wurden + die internen Standorte.

Hoffe das ist jetzt einigermaßen verständlich.

Ciao
Claus
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
ClausM
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 103
Registriert: 16. Mär 2019, 10:28

Re: n:m-Beziehung verwenden?

Beitragvon ClausM » 25. Nov 2019, 15:54

@Klaus
@Ulrich

Habe mir am Wochenende das Ganze noch einmal in Ruhe angeschaut und ihr habt selbstverständlich recht.
Eine 1:n-Beziehung von Kunde zu Lieferanschrift mit dem PS als FS ist völlig ausreichend.
Vielen Dank für die Hilfe, hätte es sonst viel komplizierter gemacht als es ist.

Ciao
Claus
ClausM
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 103
Registriert: 16. Mär 2019, 10:28

Re: n:m-Beziehung verwenden?

Beitragvon ClausM » 19. Nov 2020, 11:50

Hallo zusammen,

ich muss jetzt doch noch einmal diesen Thread öffnen.

Der letzte Lösungsansatz mit zwei Tabellen und einer 1:n-Beziehung hat bisher funktioniert.

Code: Alles auswählen
tblKunden                 tlbLieferadresse
                          ID
ID ----------1:n----------KundeID
Name                      Name
...                       ...

Wie schon beschrieben gibt es aber auch Adressen, welche für alle Kunden ausgewählt werden können und damit funktioniert das obige Konstrukt nicht.
Mein einziger Lösungsansatz wäre, die Beziehung zu lösen und dem Anwender in einem Kombinationsfeld nur die Lieferadressen zu zeigen, welche auf den Kunden verweisen oder dem Dummy-Kunden (Pool für die allgemeinen Adressen) zugeordnet sind.
Das löschen der Beziehung gefällt mir aber nicht, da evt. dann Kunden gelöscht werden, ihre dazugehörigen Lieferadressen aber nicht.

Wer hat eine bessere Idee?

LG
Claus
ClausM
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 103
Registriert: 16. Mär 2019, 10:28

Re: n:m-Beziehung verwenden?

Beitragvon knobbi38 » 19. Nov 2020, 12:03

Hallo Claus,

dann mußt du anstatt einer 1:n Beziehung eine m:n Beziehung verwenden und die KundenID in der Tabelle Lieferadressen entfällt.

Gruß Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2798
Registriert: 02. Jul 2015, 14:23

Re: n:m-Beziehung verwenden?

Beitragvon Bitsqueezer » 19. Nov 2020, 12:41

Hallo,

die PLZ-Tabelle kann man, zum. in Deutschland, so nicht machen.

https://rp-online.de/panorama/deutschla ... d-15371961

Die Reform ist schon 27 Jahre her, und immer noch setzen einige PLZ = Ort, das ist falsch.

In Deutschland kann eine Straße eine PLZ haben, ebenso Postfächer und ebenso Großkunden.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7911
Registriert: 21. Jun 2007, 12:17

Re: n:m-Beziehung verwenden?

Beitragvon Beaker s.a. » 19. Nov 2020, 14:01

Hallo Claus,
da evt. dann Kunden gelöscht werden, ihre dazugehörigen Lieferadressen aber nicht.

Das darf nicht sein. Um das zu verhindern musst bei dieser Beziehung in der ref. Integrität die
Löschweitergabe einschalten.
gruss ekkehard
Ereignisorientierte Programmierung:
Alles, was geschieht, geschieht.
Alles, was während seines Geschehens etwas anderes geschehen
läßt, läßt etwas anderes geschehen.
Alles, was sich selbst im Zuge seines Geschehens erneut geschehen
läßt, geschieht erneut.
Beaker s.a.
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1056
Registriert: 14. Jul 2012, 21:56
Wohnort: Bremen

Nächste

Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste