Ich starte mal einen weiteren Versuch. Grundlegend hätte ich es gerne so, dass von einer Person
ein Adressbuch angelegt wird. Im realen Leben legt man ja auch nur ein Adressbuch für eine Person an. In diesem einen Adressbuch sind dann Privat-Daten und Geschäft-Daten enthalten.
So, im ersten Schritt gehe ich dazu über, dass ich zunächst eine Person anlegen will.
Hier wird die Person Hanserle angelegt. Hier ist noch nicht klar um wen es sich handelt. Ist er mein Freund? Ist er ein Schauspieler? Ist er ein Autor oder was ist er? Diese Fragen spielen keine Rolle. Denn es wird ja deutlich, dass die Person hier zunächst einmal als Stammdaten angelegt wird. Deswegen werden auch nur Daten von der Person angelegt, die
nicht Adressbuch-würdig sind. Niemand legt ein Adressbuch an, nur weil er/sie weiß, welche Augenfarbe, Haarfarbe und welche Körpergröße Hanserle hat. Hier sind also einfach nur
neutrale Daten.
Nachdem wir die Person Hanserle angelegt haben, wollen wir ihn zu einem Adressbuch hinzufügen. Denn er ist unser Freund/Bekannter/Verwandter - was auch immer.
Wir sehen also, dass Hanserle einen Hauptwohnsitz, und zwei Zweitwohnsitze hat. Wir sehen, dass er einmal in Niedersachsen, Hamburg und Bremen wohnt. Dazu sehen wir dann die Postleitzahlen, und die dazugehörige Orte, sowie den Straßennamen. Aber wir haben auch noch mehr von Hanserle, und zwar Kommunikations-Daten
Hanserle ist sehr gut zu erreichen. In der Kategorie
Nummer, hier wären das Mobil-/Festnetz-/Fax- und Pagernummer. Hier setzen sich die Nummern aus den Ländervorwahlen, aus der Vorwahl und aus der Rufnummer zusammen. Und bei der Spalte Gerät wird einfach nur eingetragen, um welches Gerät es sich handelt. Handelt es sich hier um eine Nummer eines Pagers, Faxes, Mobiltelefones oder eines Festnetztelefones? Und in der Anmerkung kann man anmerken was man will. Da wir ja wissen, dass Hans insgesamt drei Wohnsitze hat, kann man in die Anmerkung schreiben, von welchem Wohnsitz folgende Nummer ist. Die Festnetznummer könnte ja zum Beispiel von Hamburg sein.
In der Kategorie
NachrichtSofortVersand sehen wir, dass Hanserle auch über viele sogenannte Instant Messengers erreichbar ist. Wir haben seinen Benutzernamen für Skype, für MSN für ICQ und für Gabba Gabba. In den Anmerkungen kann man auch hier wieder schreiben was man will.
Auch hat Hanserle viele
E-Mail-Adressen. Hier hat er genau drei Stück. Und in den Anmerkungen kann man auch wieder beliebig reinschreiben was mann will.
Und zum Schluss haben wir einige
Internet-Adressen von Hanserle. Und auch hier können wir dann eine freie Anmerkung zu den jeweiligen Adressen schreiben.
Nun habe ich mir nochmal überlegt, wie ich das alles in einer Datenbank abbilden kann. Für eine Person, nur ein Adressbuch, mit vielen Daten. Raus kam dabei das hier:
Ich habe hier einige Bereich mit grün und andere mit rot markiert. Fangen wir mal mit der Kommunikation an, rechts im Bild. Ich dachte, man könnte dies durch eine m:n-Beziehungen erledigen. Wobei ich hier auch nicht sicher bin, ob hier der Lösungsansatz korrekt ist. Aber ich dachte dabei auch an folgende Situation. Angenommen ich kenne ein Pärchen. Ich habe sowohl den Mann als auch die Frau einzeln abgespeichert, weil sie weitestgehend unterschiedliche Komminukation-Daten haben. Das heißt, ich habe sowohl für den Mann als auch für die Frau jeweils ein Adressbuch angelegt. Da das Pärchen aber zusammenleben, haben beide die gleiche Festnetznummer. Das heißt, sowohl beim Mann als auch bei der Frau kommen die Festnetznummer doppelt vor. Das heißt, eine Person kann viele Festnetznummer haben, und eine Festnetznummer kann vielen Personen zugeordnet werden. Daher kam ich auf die m:n-Beziehung.
Als nächstest habe ich Kanton, Bundesland, Bundesstaat, Grafschaft und Provinz zusammengefasst und daraus eine Tabelle
Region gemacht. Es ist hier also völlig unwichtig zu wissen, um was es sich bei dem Namen der Region handelt. Ich meine, die Datenbank braucht ja nicht zu wissen, ob bei dem Namen
Bremen um ein Bundesland, Bundesstaat, um eine Provinz oder um eine Grafschaft handelt. So spare ich mir die ganzen einzelnen Tabellen. Weiterhin habe ich die Tabellen
Postleitzahlen,
Postfach und
Ort sowie
Land ausgelagert und sie alle mit der Zwischentabelle
Adressbuch_Region verknüpft. Warum? Diese Daten können und sollen auch als Stammdaten angelegt werden. Aber die Stammdaten legt der Benutzer schön selbst an. Und die restlich grün eingerahmten Tabellen werden hier auch als Stammdaten behandelt, und können dann zum Adressbuch entsprechend hinzugefügt werden. Aber viel wichtiger ist, dass pro Person ein Adressbuch angelegt werden soll. Und pro Person kann viele Anschriften haben. Das heißt, eine Person kann in vielen Regionen und Orten leben/wohnen. Und viele Regionen und Orte können vielen Person zugeordnet werden. Daher hier die m:n-Beziehung.
Ich hoffe, dass ich mich etwas besser japanisch formuliert habe
P.S. Im Anhang sind die DDL-Statements als *.txt-Datei angelegt worden.