2te Normalform...Eigene Tabelle fuer jedes Kennzeichen? (Access)

Martin Asal @, Mittwoch, 08.04.2009, 21:48 (vor 3416 Tagen) @ ThomasS.

Ich moechte eine Datenbank aufbauen, bei der ich einem Kunden mehrere Vertraege (Bspw.Verwaltung/Buchfuehrung/Pruefung) und diesen Vertraegen verschiedene Inhalte bzw. Dienste zuweisen moechte.

Du hast also Kunden, Verträge, und bietest Dienste an, die auf bestimmten Dienstleistungen beruhen. Demnach würde ich 4 Tabellen anlegen, und diese wie folgt normalisieren:

tblKunden 1:n tblVerträge 1:n tblDienste n:1 tblDienstleistungen

In tblDienstleistungen kommen dann für Verwaltung/Buchfuehrung/Pruefung je ein Datensatz rein. Schließlich bietest Du eine bestimmte Produktpalette an, Rasenmähen gehört derzeit wohl nicht dazu ;-)

tblKunden sollte klar sein; eben alles zum Kunden.

Für jeden Vertrag ein Eintrag in tblVerträge; jeder Vertrag gehört eindeutig zu einem Kunden.

In tblDienste kommen die jeweiligen Vertragsdetails rein: In einem Vertrag ist z.B. nur Buchführung und Prüfung vereinbart, macht also 2 Datensätze. Dazu wird in tblDienste nur die VertragsID, nicht die KundenID gespeichert; die ergibt sich ja bei Bedarf wieder aus dem Vertrag. Außerdem gibt es ein Feld "Dienstleistung", in dem die ID aus tblDienstleistungen gespeichert wird.

Wahrscheinlich wirst Du die einzelnen Tabellen sehr schnell weiter "aufbohren"; z.B. würde ich in tblDienste noch Felder anlegen zum Tätigkeitsbeginn (der für einen Dienst innerhalb des Vertrags vielleicht ein anderer ist, als der Vertragsbeginn) oder Preisvereinbarungen.

Grundsaetzlich stellt sich mir die Frage, ob innerhalb eines Datensatzes auch Felder frei bleiben koennen.

Ja. Aber bitteschön nur bei Feldern, die nicht andere Tabellen tangieren.

bis denn
Martin


gesamter Thread:

 RSS-Feed dieser Diskussion

powered by my little forum