Hallo.
ich benötige mal einen Rat von einem erfahrenen
Access-Anwender, da ich selber
erst in den Anfängen stehe.
Und dann so ein Projekt … gulp.
Ich möchte eine Datenbank aufbauen, in der ich alle relevanten
Daten eines Menschen
(hier Auszubildende) auf Anhieb ersehen kann. Beeinhalten soll
die Datenbank zum
einen die Stammdaten (Name, Adresse, Geburtstag usw.), dann
sollen aber auch die
Kontaktdaten zur BBS, zum Jugendamt (sind Azubis in einer
Jugendhilfeeinrichtung)
zu den Eltern, zum Arbeitsamt und die Daten die Ausbildung
betreffend (Ausbildungsbeginn,
Zwischenprüfung usw.) und, wenn vorhanden, Daten betreffend
des Krankheitsbildes
erfasst werden.
Wer weiss wie ich am sinnvollsten vorgehe?
Einen wichtigen Schritt hast Du schon getan, indem Du Stamm- und Bewegungsdaten voneinander trennst. Aus Deiner Beschreibung sind schon mal einige Entitäten direkt abzuleiten :
- Personenstamm
- Kontaktadressen
- Ausbildungsgang
- Krankheitsdaten
Damit hast Du vier Tabellen zum Beginn. Jetzt solltest Du das Ganze ein wenig verfeinern. Beginnen wir mit dem Personenstamm : Welche Daten pflegen sich nie, aber auch wirklich nie, zu ändern? Da bleibt eigentlich nur der Geburtstag übrig. Hier hättest Du einen geeigneten Kandidaten für einen Unique- Identifier (den brauchst Du, um später gezielt auswerten zu können u.a.). Unglücklicherweise gibt es aber verschiedene Menschen, die am gleichen Tag Geburtstag haben. Also müsste der Schlüssel noch erweitert werden. Es bietet sich an, hier den Namen, Vornamen und das Geburtsdatum miteinander zu verhackstücken.
Beispiel :
Ludmilla Meisenknödel, geb. 23.8.79
Heinrich Fettenbrot, geb. 18.6.84
Johann Walzerkönig, geb. 23.8.79
Hans Dampf, geb. 1.2.86
Matilda Walzing, geb. 4.11.88
Hans Dampfnudel, geb. 18.6.84
Wir legen willkürlich fest, dass der Identifier 16 Stellen haben soll. Dann kann er gebildet werden aus dem achtstelligen Datum (sinnvollerweise JJJJMMTT) sowie jeweils den ersten vier Stellen des Vor- und des Nachnamens.
Ludmilla Meisenknödel wäre dann 19790823MEISLUDM
Heinrich Fettenbrot 19840618FETTHEIN
Johann Walzerkönig 19790823WALZJOHA
Hans Dampf 19860201DAMPHANS
Matilda Walzing 19881104WALZMATI
Hans Dampfnudel 19840618DAMPHANS
Damit siehst Du schon die Grenzen dieses Verfahrens - je mehr Menschen in Deinem System herumschwirren, desto größer wird die Wahrscheinlichkeit, dass mehrere Personen auf dem gleichen Schlüssel landen. Eine Nachnamensänderung hat eigentlich nur zur Folge, dass alle bisher aufgelaufenen Daten mit dem neuen Schlüssel versehen werden müssen (vielleicht sollte man Matilda Walzing nur mit Johann Walzerkönig verkuppeln *g*).
Ich höre schon die Frage, wozu das Ganze, wo man doch den ganzen Nach- und Vornamen in den Schlüssel verbramseln könnte, bzw. einen Unique Index über alle drei Felder legen. Nun, zum Einen gewährleistet ein Verfahren wie oben eine einheitliche Schlüssellänge, was das Zielen erleichtert (*peng*). Zum Anderen ist das sortierte Vorhalten der Daten einfacher. Es gibt noch mehrere andere Vorteile, aber diese zwei mögen zunächst genügen. Uff.
Jetzt können wir den Personenstamm schon mal mit folgenden Feldern bestücken :
- Primärschlüssel, Format AutoWert
- Personenschlüssel, Format Text, 16stellig, eindeutig indiziert
- Nachname, Format Text, indiziert
- Vorname, Format Text, indiziert
- Geburtsdatum, Format Datum, indiziert
- Geburtsname, Format Text
Die indizierten Felder sind Mussfelder.
Die Adressdaten zu den jeweiligen Personen solltest Du m.E. nicht in den Personenstamm integrieren, a) wegen der Änderungsfrequenz (junge Leute ziehen öfters um oder kriegen neue Handys) und b) aus Dokumentationsgründen - Schriftverkehr z.B. sollte auch späterwärts mit der zum Erstellungszeitpunkt gültigen Adresse versehen bleiben.
Dieses wäre der erste Streich. Das Posting ist lang genug, und Du solltest das oben Gesagte zunächst einmal verdauen. Übrigens : alle bisherigen Operationen fanden auf Papier und im Hirn statt; Access kommt noch gar nicht zum Einsatz.
Aber eins muss ich noch loswerden : Sintemalen Du sensible Personendaten verarbeiten willst, musst Du für ein wasserdichtes Zugangskontrollsystem sorgen (BDSG!). Das heißt, ein wenig später müssen wir uns intensiv mit dem nicht ganz trivialen Benutzerverwaltungssystem in Access auseinandersetzen.
Wenn Dir mein Ansatz schlüssig vorkommt, melde Dich per Mehl bei mir; dann basteln wir den Rest auch noch step by step *ratatatat*.
Gruß kw