![]() |
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
Frage zum DB-Design
hallo zusammen,
ich hab mal ne Frage zum DB-Design. Würdet Ihr Anrede und Titel im Kundendatensatz als String speichern oder eher in separaten tabellen. Ich denke der Aufwand von separaten Tabellen lohnt nicht . Gruss KH |
Re: Frage zum DB-Design
Ich denke, der lohnt schon. Stell Dir vor, Du suchst alle Herren. Nun hast Du aber bei der Eingabe nicht aufgepasst und einmal "Her" geschrieben. Somit wird Dir ein Datensatz unterschlagen. Gerade für solche Dinge wurde ja die Normalisierung eingeführt. Bei einer ordentlichen Relation wären dann eben alle "Herren" auch "Heren", Du würdest den Fehler schneller bemerken und müsstest nur einen einzigen Datensatz ändern.
|
Re: Frage zum DB-Design
Zitat:
Dann aber auch auf jeden Fall eine FK setzen. |
Re: Frage zum DB-Design
Ja natürlich.
|
Re: Frage zum DB-Design
Ich wäre da etwas vorsichtiger mit extra Tabelle. Pauschal kann man das jedenfalls nicht empfehlen. Die Anwender sind äußerst erfindungsreich, wenn es darum geht, Informationen, die eigentlich so nicht vorgesehen sind, dennoch aus irgendwelchen Gründen in einem Datensatz zu hinterlegen. Beispiele die mit extra Tabelle zumindest "komisch" aussehen :
Delphi-Quellcode:
Herr
Feuerwehr Poststr. 34 12345 X-Dorf
Delphi-Quellcode:
Praxisgemeinschaft
Dr. Krank Poststr. 34 12345 X-Dorf
Delphi-Quellcode:
Hier noch ein paar klassische Fälle :
Prof.
Dr. Dr. Schlau Poststr. 34 12345 Berlin
Delphi-Quellcode:
Fa. Metallbau
z.Hd. Herrn Zitzelsberger oder Frau Wolf Poststr. 34 12345 Berlin
Delphi-Quellcode:
Nehmen wir mal den letzten Fall : als Anrede wäre wohl nur "Fa." möglich und fest vorgegeben. Wo soll man nun den Rest speichern ? Die Felder dürfen auch eine maximale Länge nicht überschreiten (Fensterkuvert, Etiketten etc.). Ich verzichte jedenfalls zugunsten der Flexibilität auf extra-Tabelle. Der User hat 4 Zeilen und fertig.
Fa. Metallbau (Abteilung Einkauf Tor 37)
z.Hd. Frau Dr. Hintze-Schnarrenberger Poststr. 34 20000 Hamburg |
Re: Frage zum DB-Design
Das Feld AnredeID sollte halt NULL-Werte zulassen. "Praxisgemeinschaft" sehe ich z.B. nicht als Anrede, sondern als Namensbestandteil an. Daher gehört das ins Namensfeld.
Gruß, Jens |
Re: Frage zum DB-Design
Und Prof. ist keine Anrede, sondern ein Titel ;)
|
Re: Frage zum DB-Design
Wie gesagt, pauschal sagen, was besser ist, das kann man nicht sagen. Kommt eben drauf an. Der eine "Her", der würde schon irgendwann auffallen und man müsste/sollte die eine Adresse dann korrigieren. Der Schreibfehler könnte zwar redundant sein und man bräuchte nur die Anrede-Tabelle zu aktualisieren. Aber wehe, in dieser hat sich ein "Her" eingeschlichen. Sind die 1000 Rechnungen gedruckt, dann fällts einem zwar auf, aber alles muss/soll neu gedruckt werden. Murphy lässt grüßen. :mrgreen:
Beim Prof. weiß ich es nicht genau. Aber der Dr. ist zwar ein Titel und trotzdem sogar Namensbestandteil. Lasse dir mal von einem mit gekauftem Dr.-Titel den Ausweis zeigen. Wetten, dass der "Dr." da als Name mit drin steht ? :shock: Ich hatte allerdings auch mal einen Sonderfall, da war es unumgänglich, die Anrede-Felder separat zu halten. Dabei ging es aber um 500.000 Adressen. 100.000 Adressen waren Firmen und genau die sollten NICHT angeschrieben werden. Macht ohne Massen-Rabatt eine Ersparnis von 100.000x0,55 EUR = 55.000 EUR ! Bei allen anderen Fällen ist meistens die Flexibilität wichtiger. |
Re: Frage zum DB-Design
Dr, Prof usw sind Akademische Titel, diese sind genauso wie Adeltstitel und Berufstitel ( Rechtsanwalt, Steuerberater, Wirtschaftsprüfer, ...) im Ausweis ausgewiesen, sind aber nicht Teil des Namens.
Man kann ja zu Dokumentationszwecken die ausgewählten Werte ( oder das ganze Adressfeld) redundant ablegen |
Re: Frage zum DB-Design
Hi,
Zitat:
Edit: Bei Dir steht doch Heilbronn im Profil, also das wundert mich. Das sich dieser Irrglaube mit den Adelstiteln noch immer hält, fast 100 Jahre danach. Denk mal an die US Buddies die vom "adoptierten Adel" wiederum adoptiert wurden. Das sind nur Namen, die durch die Adoption angenommen werden. Mehr nicht. Gruß Assertor |
Re: Frage zum DB-Design
Zitat:
Was spricht dagegen? Gruss Kh |
Re: Frage zum DB-Design
Zitat:
Zitat:
|
Re: Frage zum DB-Design
Zitat:
Ich kenne Firmen, da würden die User heulen "Alles viel zu kompliziert! So brauche ich ja 20 Minuten um einen Kunden einzugeben! Die Software ist Scheiße!". Ich kenne wiederrum Firmen, die sagen dass nur bestimmte Leute Stammdaten wie z.B. Anreden pflegen dürfen. Die Leute, die die Kunden erfassen dürfen nur aus der Auswahl wählen. Wenn eine Anrede fehlt, müssen sie zum Chef gehen und besprechen, ob man evtl. eine neue Anrede einpflegt. Dann kenne ich auch noch Firmen, die sind zufrieden, wenn man neben der Anredenauswahl im Kundensatz einen Button macht, mit dem man mit einem Klick in den Anredenstammdaten springen kann und evtl. fehlende Anreden nachpflegen kann. Die Antwort ist also: Kommt drauf an. Gruß, Jens |
Re: Frage zum DB-Design
Zitat:
|
Re: Frage zum DB-Design
Zitat:
ich danke euch für eure Meinungen. |
Re: Frage zum DB-Design
Zitat:
was dafür spricht, die Anreden und andere Stammdaten nur von bestimmten Leuten pflegen zu lassen. Gruss KH |
Re: Frage zum DB-Design
Zitat:
Außerdem ein zweites Feld "Namenszusatz" oder ähnlich neben Vor/Nachname/Firmenname einfügen. Da wir international arbeiten, habe ich mittlerweile etwa 30 Einträge in meiner "Anrede" - Tabelle und etwa 20 Einträge in meiner "Titel" Tabelle. Das gleiche für das Feld "Sprache". Ändern dürfen das nur unsere Fremdsprachensekretärin, ein Admin oder ich... |
Re: Frage zum DB-Design
Zitat:
|
Re: Frage zum DB-Design
Zitat:
|
Re: Frage zum DB-Design
Es handelt sich ja "nur" um Normalisierung.Abfragen können da schon komplexer sein
|
Re: Frage zum DB-Design
Zitat:
Siehe Anreden ;-) |
Re: Frage zum DB-Design
Wie gesagt ist eine Anrede ein klarer Fall für die Normalisierung, während Orte normalerweise nicht normalsiert werden, obwohl sie eigentlich von der PLZ abhängig sind.
|
Re: Frage zum DB-Design
Zitat:
na seit den neuen PLZ ist das ja ein Thema für sich |
Re: Frage zum DB-Design
Zitat:
Gruß, Jens |
Re: Frage zum DB-Design
Bislang bin ich mit der 3. Normalform ganz gut gefahren. Nur, wenn etwas historisiert werden muss, wird denormalisiert und die Werte statt der Schlüssel weggeschrieben.
|
Re: Frage zum DB-Design
Weitere Gründe für eine Adresstabelle:
Werden automatisch Briefe oder E-Mails generiert, gehört zu einer Anrede auch eine Briefanrede. Frau -> "Sehr geehrte Frau %s," -> natürliche Person Herr -> "Sehr geehrter Herr %s," -> natürliche Person Familie -> "Sehr geehrte Familie %s," -> natürliche Person Firma -> "Sehr geehrte Damen und Herren," -> Firmenadresse Über die Anrede kann auch zwischen natürlichen Personen und Firmenadressen unterschieden werden. Bei ersteren wird Titel, Vorname und Name getrennt erfasst. Für Firmen gibt es nur zwei Adresszeilen. Für die Weiterverarbeitung der Daten in externen Systeme, zB. Bildung des Kontonamens für die Finanzbuchhaltung, kann diese Unterscheidung auch erforderlich sein. Hansa hat weiter oben einige Beispiele aufgeführt, wo die Software nicht zwischen Firmenadressen und natürlichen Personen unterscheidet. Bei einer Firmenadresse ist die Anrede nicht Teil der Postanschrift, so sind zwei volle Zeilen für die Postanschrift erfassbar. Für natürliche Personen wird in der ersten Zeile die Anrede ausgegeben, darunter Vor- und Nachname. |
Re: Frage zum DB-Design
Ich versuche immer bis zur 3. Form zu normalisieren. Bin damit v.a. bei Erweiterungen der DB-Struktur immer gut gefahren
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz