Tabellenbeziehung

Moderator: ModerationP

Re: Tabellenbeziehung

Beitragvon KlausMz » 16. Apr 2018, 12:30

Hallo,
zu 1)
Ja, mit einem 3. Ufo wie von Dir beschrieben. Aber ich würde da eher ein extra Formular erstellen das man per Doppelklick auf die BestID öffnet und so die dazu gehörenden Rechnungen/Teilrechnungen anzeigt.

Zu 2)
Wenn die Zwischentabelle keine weitere Verwendung findet, kann man über die beiden Felder einen zusammengesetzten Primärschlüssel anlegen.
Sollte ein Datensatz dieser Tabelle aber referenziert werden müssen (was hier nicht der Fall ist) würde ich eine PS (Autowert) einbauen.
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: 37750
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Tabellenbeziehung

Beitragvon Kerstin83 » 16. Apr 2018, 14:16

Zu
Müssten die Pfeile nicht auf die 1-Seite zeigen, also von der Zwischentabelle weg zeigen?

In den Beziehungen gibt es bei mir gar keine Pfeile. Oder meinst du für eine konkrete Abfrage ?

Liebe Grüße
Kerstin :P
Ich hasse Leute, die Sätze nicht zuende
Kerstin83
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 739
Registriert: 03. Aug 2005, 13:29
Wohnort: Zur Zeit im schönen Berlin

Re: Tabellenbeziehung

Beitragvon KlausMz » 16. Apr 2018, 14:23

Hallo,
Müssten die Pfeile nicht auf die 1-Seite zeigen, also von der Zwischentabelle weg zeigen?
Die Pfeile ist Interpretationssache. Die Pfeile zeigen bei mir auf die Fremdschlüssel (n-Seite). Und das ist hier auch richtig.
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: 37750
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Tabellenbeziehung

Beitragvon Nouba » 16. Apr 2018, 15:12

Nun, es gibt viele Möglichkeiten einer ER-Darstellung - Access passt irgendwie in keines der gängigen Darstellungsformate.
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
Nouba
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 16688
Registriert: 13. Mär 2006, 12:55
Wohnort: Berlin

Re: Tabellenbeziehung

Beitragvon Gast » 16. Apr 2018, 16:07

@Kerstin
Oder meinst du für eine konkrete Abfrage ?

Gemeint ist das letzte Diagramm von Klaus

@Klaus
Das wäre dann nach Noubas Link die Bachman-Notation. Meine Frage war dann im Sinne der Martin-Not.
Um beim ER-Modell zu bleiben, berücksichtigt ihr streng die Kardinalitäten beim Tabellenentwurf? Setzt also bei der 1:n-Beziehung zB Geburtsort : Personen auf der n-Seite den Fremdschlüssel auf "Eingabe erforderlich"?
Gruß
Benny
Gast
 

Re: Tabellenbeziehung

Beitragvon Nouba » 16. Apr 2018, 16:23

Wer ist ihr?

Bestelldetails ohne Angabe eines Bestelldatensatzes und/oder eines Artikels wären IMHO ein ziemlich wertloser Datenhaufen. Personendaten ohne Angabe eines Geburtsorts sind davon i.d.R. eher weniger betroffen.
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
Nouba
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 16688
Registriert: 13. Mär 2006, 12:55
Wohnort: Berlin

Re: Tabellenbeziehung

Beitragvon KlausMz » 16. Apr 2018, 16:28

Hallo,
@Benny
Die Pfeile sind bei mir vollkommen willkürlich. Die mache ich einfach mit einem Zeichenprogramm. Die könnte ich genau so gut umgekehrt machen. Die Richtung (also die n-Seite) ergibt sich einfach aus dem Zusammenhang. Im betroffenen Bild kann der Pfeil nur die n-Seite sein, alles andere wäre unlogisch.
Wenn es nicht eindeutig ist, erkläre ich es.

Setzt also bei der 1:n-Beziehung zB Geburtsort : Personen auf der n-Seite den Fremdschlüssel auf "Eingabe erforderlich"?
Geburtsort ist hier ein schlechtes Beispiel. Der Geburtsort gehört entweder als Feld für den Klartext (dann keine Beziehung) oder als Fremdschlüsselfeld in die Personentabelle wenn es den Geburtsort häufiger gibt und man per Kombi wählen will.
Das wäre dann eine Personentabelle < n:1 > Geburtsort Beziehung.
Das Fremdschlüsselfeld kann man nur dann zu einem Pflichtfeld machen, wenn es immer einen Wert gibt. Um beim Geburtsort zu bleiben, was machst Du, wenn Du diesen beim Anlegen der Person noch nicht kennst ?
Wenn das FS Feld ein Pflichtfeld ist, musst Du was auswählen, das heißt in der Ortstabelle muss es einen Eintrag geben (z.B. unbekannt) der dann gewählt wird. Ohne Pflichtfeld kann das Feld leer bleiben.
Solche Dinge liegen beim Entwickler, der entscheiden muss ob beim FS ein Pflichtfeld Sinn macht. Das FS Feld kann und darf auch leer bleiben. Man muss nur darauf achten, dass kein Standardwert im FS Feld eingetragen ist der die RI verletzen würde.
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: 37750
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Tabellenbeziehung

Beitragvon Gast » 17. Apr 2018, 00:37

Hallo,
1)
in der Ortstabelle muss es einen Eintrag geben

Um beim zugegebenermaßen schlechten Beispiel zu bleiben (stammt aus der Info des Links zur Notation):
Wie sorgt man am besten dafür, dass der Anwender zuerst die Daten der 1-Seite, hier der Ortstabelle eingibt, um dann auf der n-Seite mit einer Combobox darauf zugreifen zu können?
Als Alternativen:
a) Info im „Handbuch“, was vielleicht keiner gern liest, zuerst die 1-Seiten zu „bedaten“.
b) VBA-Lösung mit einem entsprechenden Hinweis für den Fall, dass der Anwender eine leere Combobox vorfindet, weil er zuerst mit der n-Seite anfing.
Was wäre gängige Praxis oder gibt’s was Besseres?

2)
Sind eigentlich die beiden Fremdschlüssel von Zwischentabellen immer Pflichtfelder? Würde ja sonst keinen Sinn machen oder?
Gruß Benny
Gast
 

Re: Tabellenbeziehung

Beitragvon KlausMz » 17. Apr 2018, 08:35

Hallo,
Wie sorgt man am besten dafür, dass der Anwender zuerst die Daten der 1-Seite, hier der Ortstabelle eingibt, um dann auf der n-Seite mit einer Combobox darauf zugreifen zu können?
Die Frage stellt sich so nicht. In der Praxis würde man bei einem nicht existierenden Ort bei der Dateneingabe das Ereignis "Bei nicht in Liste" aufrufen und einen fehlenden Ortseintrag sofort erfassen. Aber wie gesagt, es könnte ja sein, dass der Geburtsort (noch) nicht bekannt ist, dann muss das Fremdschlüsselfeld leer bleiben oder es muss einen Ort "Unbekannt" geben.

Sind eigentlich die beiden Fremdschlüssel von Zwischentabellen immer Pflichtfelder?
Das ist dem Entwickler überlassen.
Es könnte ja sein, dass der Datenerfasser sagt, ach, wenn ich schon mal dabei bin trage ich auch gleich die Bestellung ein (in die Zwischentabelle) dann ist das mal erledigt. Zu diesem Zeitpunkt gibt es ja noch keine Zahlungen, also muss das Fremdschlüsselfeld für die Zahlungen leer bleiben. Oder es muss bei den Zahlungen einen Dummydatensatz geben (noch keine Zahlung), wenn beide Felder Pflichtfelder sind.
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: 37750
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Tabellenbeziehung

Beitragvon benny66 » 17. Apr 2018, 10:16

Hallo,
Die Frage stellt sich so nicht.

Auf das Beispiel bezogen, kann man es so sehen und sich mit „unbekannt“ helfen. Aber was ist bei Nachschlagetabellen oder ist der Begriff rein technischer Natur und die 1-Seite von 1:n-Beziehungen ist immer die Nachschlagetabelle? Da (Geschlecht, Anrede, ...) würde es doch besser sein, die Daten auf der 1-Seite zuerst einzugeben und das Fremdschlüsselfeld mit „Eingabe erforderlich“ einzurichten. „unbekannt“ würde da doch eher irritieren.
Was wäre da die beste und gängige Praxis? (Handbuch, VBA-Hinweis)
Gruß
Benny

Edit:
Bei Geschlecht, Anrede könnte die Combo mit einer Werteliste gefüllt werden. Soll nur ein Bsp sein, es gibt sicher DM, wo die 1-Seite wesentlich umfangreicher und die Werteliste ungünstig ist. Ich meine also Beispiele, wo also Nachschlagetabellen nötig sind.
benny66
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 318
Registriert: 22. Nov 2015, 21:56

Re: Tabellenbeziehung

Beitragvon KlausMz » 17. Apr 2018, 10:49

Hallo,
das liegt alles bei Dir. Auch beim Geschlecht kann es durchaus vorkommen, dass man bei Erfassung einer Person das Geschlecht noch nicht kennt, daher könnte da durchaus "unbekannt" Sinn machen.

Ich würde auch für das Geschlecht nie eine Werteliste nehmen, sondern immer eine Tabelle.
Mit einer Tabelle kannst Du dann auch gleich das Geschlecht, die Anrede, die Briefanrede und ggf. eine persönlcihe Anrede (Lieber Herr ..., Liebe Frau .. oder Lieber Karl.., Liebe Maria.. etc.) mit unterbringen.

Überhaupt, kommt für mich eine Werteliste so gut wie nie in Frage.
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: 37750
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Tabellenbeziehung

Beitragvon benny66 » 17. Apr 2018, 13:43

Hallo,
ich hoffe, ich strapaziere das Thema nicht zu sehr und ich habe mich da wohl unklar ausgedrückt.

Es geht mir nicht so sehr um das „Unbekannt“ oder die Werteliste, sondern um die Reihenfolge der Dateneingabe.
Konkretes Bsp: tblGeschlecht : tblPersonen = 1 : n
Wenn jetzt frmPersonen erstellt wird, würde das Geschlecht in einer Combobox cboGeschlecht ausgewählt werden können. Datenquelle für cboGeschlecht wäre tblGeschlecht.
Würde der Anwender jetzt mit frmPersonen beginnen, die Daten einzugeben, steht ja noch kein Primärschlüssel über die 1:n-Beziehung zur Verfügung und es käme sogar zur Fehlermeldung (Sie müssen einen Wert … eingeben), wenn der Fremdschlüssel als Pflichtfeld eingerichtet wurde.

Es wäre also nötig, den Anwender irgendwie darauf hinzuweisen, dass er erst die Daten für tblGeschlecht (über ein frmGeschlecht) eingeben muss, und erst danach mit der Dateneingabe bei frmPersonen beginnen darf.

Mir fällt als Lösung nur die Information durch ein Handbuch ein. Halte dies aber für nicht sehr komfortabel und suche daher eine intuitive Lösung.

Gruß
Benny
benny66
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 318
Registriert: 22. Nov 2015, 21:56

Re: Tabellenbeziehung

Beitragvon KlausMz » 17. Apr 2018, 13:57

Hallo,
Würde der Anwender jetzt mit frmPersonen beginnen, die Daten einzugeben, steht ja noch kein Primärschlüssel über die 1:n-Beziehung zur Verfügung
Irgendwie kann ich Dir nicht ganz folgen. Die Tabelle mit dem Geschlecht ist doch bereits gefüllt mit 2 Datensätzen (neuerdings können es drei sein :mrgreen: ). Und da liegt doch der PS fest. Eine solche Tabelle mit 2 (3) Datensätzen würde man doch im Vorfeld bereits komplett anlegen.
Du kannst wenn Du eine Person erfasst sofort das Geschlecht auswählen. Der Primärschlüssel der Personentabelle ist doch zu diesem Zeitpunkt völlig bedeutungslos, da kommt es auch nicht zu einer Fehlermeldung, wieso auch ? Jetzt kannst Du auch den PS der Person festlegen, sofern das kein Autowert ist und mit weiteren Angaben fortfahren. Wenn der PS der Personentabelle ein Autowert ist, wird der beim 1. Eintrag eines Wertes angezeigt.
Du denkst zu kompliziert.
Wenn es eine größere Tabelle ist (also nicht das Geschlecht) und das Feld ein Pflichtfeld ist, lässt man über das Ereignis "Bei nicht in Liste" die neuen Datensätze erfassen. Das hatte ich schon mal erwähnt. In dem Falle ist es egal wie Du beginnst. Während der Erfassung der Person wird ggf. auch ein weiterer Datensatz der anderen Tabelle gleich mit erfasst.
Das ist alles eine Frage des Geschmacks und/oder der Erfordernisse.
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: 37750
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Tabellenbeziehung

Beitragvon benny66 » 17. Apr 2018, 14:20

AmKopfKratz
Bsp: tblGeschlecht : tblPersonen = 1 : n

Habe ich es nicht richtig ausgedrückt?
tblPersonen besitzt doch den FS (zB gesIDRef), bei dem der PS von tblGeschlecht (gesID) eingetragen wird.
Wenn die DB noch völlig leer ist, existiert doch noch kein Primärschlüssel, der als Fremdschlüssel bei tblPersonen eingetragen werden kann.
Erst wenn tblGeschlecht Daten erhält, kann sinnvoll erst mit der Dateneingabe bei tblPersonen begonnen werden.
Denke, dass dies richtig ist und nicht im Widerspruch steht zum vorherigen.

Von daher stellt sich doch die Frage nach der Reihenfolge der Dateneingabe bzw. dem Umgang damit.

Edit
über das Ereignis "Bei nicht in Liste"...

OK, das wäre wohl die Lösung. Muss ich mal schauen, ob ich das hinkriege
Gruß
Benny
benny66
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 318
Registriert: 22. Nov 2015, 21:56

Re: Tabellenbeziehung

Beitragvon KlausMz » 17. Apr 2018, 14:30

Hallo,
Erst wenn tblGeschlecht Daten erhält, kann sinnvoll erst mit der Dateneingabe bei tblPersonen begonnen werden.
In der Praxis nein.
Wie bereits (mehrfach) gesagt würde man das Ereignis "Bei nicht in Liste" nutzen und während der Eingabe einer Person auch gleichzeitig die Geschlechtertabelle füllen. Über das Ereignis "Bei nicht in Liste" kann auch eine Meldung angezeigt werden:
"Das Geschlecht "männlich" ist noch nicht vorhanden, soll es angelegt werden ?" Das Feld gesIDRef wird dann nach Bestätigung mit Ja automatisch gefüllt.
Das ist aber nur dann erforderlich wenn das Feld gesIDRef ein Pflichtfeld ist und erfordert natürlich etwas Programmieraufwand.
Die Reihenfolge der Dateneingabe ist dann egal und es bedarf keiner weiteren Meldungen zur Reihenfolge.
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: 37750
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

VorherigeNächste

Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Baruse, Marmeladenglas und 13 Gäste