AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Wieder mal die Tabellenstrukturen

Wieder mal die Tabellenstrukturen

Ein Thema von stOrM · begonnen am 18. Mai 2017 · letzter Beitrag vom 23. Mai 2017
Antwort Antwort
Seite 5 von 6   « Erste     345 6   
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.275 Beiträge
 
Delphi 12 Athens
 
#41

AW: Wieder mal die Tabellenstrukturen

  Alt 21. Mai 2017, 09:36
Moin...
Zitat:
in der Anschrifttabelle gibt es
AnschriftID
KundenID
Anschrifttyp
Strasse,Ort,plz (usw. was man so braucht)
In der Kundentabelle ist die ID der Anschrift doch vorhanden. Deshalb gehört die KundenID hier nicht her. Die Anschrift ist damit für mehrere Kunden "gültig".
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#42

AW: Wieder mal die Tabellenstrukturen

  Alt 21. Mai 2017, 09:37
Eine Postleitzahl ist nicht numerisch!
Wären sie das, dann wäre 01234 die gleiche wie 1234.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#43

AW: Wieder mal die Tabellenstrukturen

  Alt 21. Mai 2017, 10:41
es gibt hier einen großen Denkfehler bzgl der Postleitzahlen:
Eine Postleitzahl kann durchaus mehrere Orte umfassen

http://www.gutefrage.net/frage/eine-...eine-bestimmte

mfg Hannes
Auch eine Vorwahl kann sich innerorts (PLZ) unterscheiden. abhängig von alten Kupfernetzen aus Postzeiten, Gebietsreformen etc. pp. Hier driftet Realität und Idealmodell soweit auseinander, dass es ggF. ratsam ist, die Nachschlagetabelle nicht zur Verknüpfung einzusetzen, sondern als "Lieferant" korrekter Werte, Stichwort Datenqualität.
Die Möglichkeit, dass die "Vorwahl" der Anschrift nicht ein Festnetzanschluss, sondern ein Handy ist, macht es auch nicht einfacher.
Die Perspektive, das Datenmodell hier irgendwann international einzusetzen, macht es noch weniger einfach.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#44

AW: Wieder mal die Tabellenstrukturen

  Alt 21. Mai 2017, 20:50
Moin...
Zitat:
in der Anschrifttabelle gibt es
AnschriftID
KundenID
Anschrifttyp
Strasse,Ort,plz (usw. was man so braucht)
In der Kundentabelle ist die ID der Anschrift doch vorhanden. Deshalb gehört die KundenID hier nicht her. Die Anschrift ist damit für mehrere Kunden "gültig".
Äh wie?
Also ist das jetzt falsch, so wie mir das hier erklärt wurde?

Zitat:
Eine Postleitzahl ist nicht numerisch!
Wären sie das, dann wäre 01234 die gleiche wie 1234.
Also sollte ich die dann als was definieren? Varchar?

Jetzt komm ich grad nicht mit, mal unabhängig davon ob es zu einem Ort mehrere Postleitzahlen gibt, versteh ich das Problem grad nicht so ganz.
Ausgangsfrage war ja erstmal, das Mikhal schrieb, der Ort muss nicht eingetippt werden, sondern kann automatisch gezogen werden, was bei mir nicht funktioniert. Die Frage ist also, warum, hab ich das falsch verstanden oder ist etwas falsch bei mir?

Danach können wir uns ja gern nochmal um das eigentlich Postleitzahl Problem kümmern?
Vielleicht kann ich auch eine separate (Postleitzahlentabelle führen ohne Verknüpfung und den Anwender das quasi als Suche zur Verfügung stellen wo er auswählen kann)
Die Vorwahlen usw. sind unerheblich, trägt der Anwender bei der Telefonnummer ja eh selber ein, das war nur in der Postleitzahlen Tabelle mit dabei, hab ich also drin gelassen, ich hab ja nicht 19.600 Postleitzahlen übers WE manuell eingegeben
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#45

AW: Wieder mal die Tabellenstrukturen

  Alt 21. Mai 2017, 21:56
Zitat:
Eine Postleitzahl ist nicht numerisch!
Wären sie das, dann wäre 01234 die gleiche wie 1234.
Also sollte ich die dann als was definieren? Varchar?
Das wäre eine Möglichkeit, es kommt auf die Datenbank an.

Ausgangsfrage war ja erstmal, das Mikhal schrieb, der Ort muss nicht eingetippt werden, sondern kann automatisch gezogen werden, was bei mir nicht funktioniert. Die Frage ist also, warum, hab ich das falsch verstanden oder ist etwas falsch bei mir?
Die reflektionsartige Rückfrage wäre Was funktioniert nicht.
Sobald eine Postleitzahl eingegeben wurde (onChange/CR ?) wird mit
select Ortsname from orttabelle where plz=:plz; Der/die zugehörige(n) Ortsname(n) abgerufen. Diese werden in z.B. einer Listbox zur Verfügung gestellt, oder aber falls es nur einen Datensatz als Antwort gibt, direkt in das Ortsfeld eingetragen. UU kann auch direkt der Link (ortsID) in die Adresstabelle zum aktuellen Datensatz eingetragen werden.
Du siehst, es gibt einige Möglichkeiten. Was davon hast Du wie umgesetzt?

Gruß
K-H

Edith:
Für eine Automatik benötigt man natürlich auch die OrtID:
select Ortsname,OrtID from orttabelle where plz=:plz;
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (21. Mai 2017 um 22:21 Uhr)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#46

AW: Wieder mal die Tabellenstrukturen

  Alt 22. Mai 2017, 06:21
Äh wie?
Also ist das jetzt falsch, so wie mir das hier erklärt wurde?
Also komm, Du kannst in einem Forum davon ausgehen, dass es immer mehrere Erklärungen gibt und viele Wege nach Rom führen.
Zusätzlich kannst Du davon ausgehen, dass es Missverständnisse gibt.
Dein Thread ist mittlerweile recht umfangreich, viel Platz für alle Arten von Informationen.

Wir wäre es, die ganzen Infos hier mal umzusetzen und einfach zu sehen, was mit Deinen ID passiert, wenn Du eine oder mehrere Adressen eintragen möchtest. Alternativ das Szenario mal durchdenken.
Und dann solltest Du die Frage eigentlich selber beantworten können, weil sie ein immer wiederkehrendes Muster in den Verbindungen zwischen den Tabellen darstellt.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.275 Beiträge
 
Delphi 12 Athens
 
#47

AW: Wieder mal die Tabellenstrukturen

  Alt 22. Mai 2017, 07:09
Moin...
Zitat:
Äh wie?
Also ist das jetzt falsch, so wie mir das hier erklärt wurde?
...wie schon gesagt wurde, führen viele wege nach Rom.

Mein Einwand "die KundenID gehört nicht in die Adresstabelle":
Stell dir mal vor es gibt in der Stadt X ein Bürohochhaus. In diesem wohnen deine Kunden. Jetzt mußt du für jeden Kunden einen Datensatz in die Adresstabelle einpflegen weil der Datensatz die ID des Kunden trägt. Ohne die KundenID wäre es ein Datensatz für alle Kunden die da wohnen. Der Kunde selbst kennt seine Adresse (AdressID aus der Adresstabelle)...fertsch.

Geändert von haentschman (22. Mai 2017 um 07:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#48

AW: Wieder mal die Tabellenstrukturen

  Alt 22. Mai 2017, 08:55
Grundsätzlich muss die Kunden-Id in der Anschrift gesetzt werden. Wird die Anschrift-Id im Kunden gesetzt, kann ich nur noch eine Anschrift zuordnen, eine Unterscheidung nach Liefer-, Rechnungs- oder abweichender Anschrift ist dann nicht mehr möglich.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.275 Beiträge
 
Delphi 12 Athens
 
#49

AW: Wieder mal die Tabellenstrukturen

  Alt 22. Mai 2017, 09:03
Zitat:
...wie schon gesagt wurde, führen viele wege nach Rom.
...
Zitat:
Grundsätzlich muss die Kunden-Id in der Anschrift gesetzt werden
...sehe ich anders. Der Kunde hat eine ID für die Anschrift, eine ID für die Rechnungsanschrift, eine ID für was auch immer. Persönlich würde ich die Adressen nicht mit der KundenID verküpfen. Da hast du viel zu viele redundante Felder. Wenn sich alle Kunden eine Lieferanschrift teilen (Packstation) hast du für jeden Kunden doppelte Einträge. Da ist es besser das Pferd anders herum aufzuzäumen.

Geändert von haentschman (22. Mai 2017 um 09:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#50

AW: Wieder mal die Tabellenstrukturen

  Alt 22. Mai 2017, 09:31
Ich arbeite im Großhandel. Folgendes Szenario ist bei uns Standard: Eine Fachhändler bestellt bei uns Ware und lässt die ohne Umwege direkt bei seinem Kunden anliefern. Bilde diese Anforderung an die Anschrift in deinem Modell ab.

Grüße
Mikhal

PS: Auch eine Rechnungsanschrift kann falsch sein. Wenn autarke Filialen ins Spiel kommen, benötigst du ggf. auch mehrere Rechnungsanschriften...
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!

Geändert von mikhal (22. Mai 2017 um 09:33 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz