Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

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

AW: Wieder mal die Tabellenstrukturen

  Alt 19. Mai 2017, 15:40

7. Die Anschrift besitzt ein Feld Anschrifttyp, der als SmallInt definiert ist (1=Lieferadresse, 2=Rechnungsadresse, 3=abweichende Lieferadresse...), kann man auch über eine Nachschlagetabelle realisieren.

Wie ist das genau gemeint, bzw wie wird das gemacht, ist ebenfalls noch nicht ganz klar.
Du hast eine "Kundentabelle"und eine "Anschrifttabelle".
in der Anschrifttabelle gibt es
AnschriftID
KundenID
Anschrifttyp
Strasse,Ort,plz (usw. was man so braucht)

in Anschrifttyp kommt dann die 1,2,3,4..x hinein, über die definiert wird was für ein Typ (Rechnungsadresse, Lieferadresse, primäre Adresse...) das ist.

Wenn Du jetzt an einen Kunden liefern willst, dann kommt auf den Lieferschein die Lieferadresse und auf die zu erstellende Rechnung die Rechnungsadresse. Soweit ist das ja wohl einsichtig.
select Name,strasse,plz,ort from kundentable join adresstable on (kundentavle.kundenID=adresstable.kundenID and adresstable.adresstyp=x) Interessant wird es wenn Du keine Lieferadresse erfasst hast. Dann könntest Du
a) davon ausgehen, das das dem Büro schon auffällt und die entsprechenden Korrekturen durchgeführt werden.
b) eine Fehlermeldung ausgeben
c) falls die Lieferadresse,Rechnungsadresse.... fehlt, die primäre Adresse ausgeben
d) es garnicht dazu kommen lassen, da immer alle Adressen erfasst werden müssen und sei es durch ein automatisches klonen der Daten
e) da der adresstyp auch eine Wertigkeit beinhaltet, bei der Suche nach einer Adresse, sollte diese nicht vorhanden sein, Du die höherwertige Adresse ausgibst.

und da gibt es bestimmt noch ein paar Winkelzüge um das noch verwirrender zu gestalten.
Des weiteren kann man natürlich auch die Adressen mit einem Gültigkeitsdatum, bzw einem Zeitraum versehen.
Langer Rede kurzer Sinn, neben den Daten für die DB-Struktur KundenID,AdressID und den nackten Nutzdaten Strasse,PLZ,Ort (Gebäude no??) benötigst Du noch interne Verwaltungsdaten Startdatum,Endedatum,Adresstyp usw.

Wichtig hierfür ist, daß Du weißt welche Arbeitsabläufe Du mit welchen Daten du abbilden willst.

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