![]() |
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 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