Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datenmodell für Projektverwaltung

Begonnen von goestaner, Dezember 10, 2012, 11:41:49

⏪ vorheriges - nächstes ⏩

goestaner

Hallo zusammen,

ich glaub ich steh gerade gewaltig auf dem Schlauch und brauche ein wenig Hilfe.

Ich bin gerade dabei, eine Art Projektverwaltung für unsere Firma zu erstellen und stolpere die ganze Zeit über einen Punkt bei der Entwicklung des zugehörigen Datenmodells.

Ich möchte folgende Situation in der Datenbank abbilden und weiss nicht so recht, wie ich es anstellen soll:

Wir haben mehrere Projekte abzuwickeln, von denen jedes Projekt genau von einem Kunden in Auftrag gegeben werden kann. Umgekehrt kann jeder Kunde mehrere Projekte in Auftrag geben. Soweit ist ja alles klar: zwei Tabellen (Kunden, Projekte) mit einer 1:n-Beziehung.
Jedem Kunden können mehrere Anschriften zugewiesen werden. Auch das ist klar: wieder zwei Tabellen (Anschriften, Kunden), wieder mit einer 1:n-Beziehung.
Allerdings, möchte ich eine dieser Anschriften als "Hausanschrift" deklarieren. Hier ist die erste Unklarheit: Wie stelle ich das an, dass der Kunde nur eine "Hausanschrift" und mehrere weitere Anschriften haben kann? Alle Anschriften sollen aber aus der Tabelle "Anschriften" genommen werden.

Jetzt möchte ich die Tabelle "Projekte" noch so weit bringen, dass ich für jedes Projekt mehrere Anschriften dieses einen Kunden hinterlegen kann: Die "Hausanschrift", die ja als solche beim Kunden bereits festgelegt wurde, eine Lieferanschrift, die ich frei aus den Anschriften dieses Kunden wählen kann und eine Rechnungsanschrift, die ebenfalls aus diesen Anschriften frei wählbar ist.

Wahrscheinlich ist diese Situation wirklich einfach zu lösen und ich denke mir das gerade viel zu verstrickt aus und brauche nur einen Schubser in die richtige Richtung.

Kann mir hier jemand diesen Schubser geben?

Danke schon mal dafür!

DF6GL

Hallo,

führe ein weiteres (Fremdschlüssel-)Feld "AnschriftArt" in tblAnschriften mit.  Aus einer Stammdatentabelle ("tblAnschriftArten":  "Hausanschrift","Lieferanschrift","RechnungsAnschrift",etc.) wird jede Anschrift eines Kunden entspr. definiert.  In tblAnschriften wird ein eindeutiger Index über die KundenID (Fremdschlüssel aus tblKunden) und die AnschriftArtID (Fremdschlüssel aus tblAnschriftArten) gelegt, um für einen bestimmten Kunden immer nur eine Anschrift einer bestimmten Anschriftart zuzulassen.

goestaner

Hallo, vielen Dank für die schnelle Antwort.

An diese Variante hab ich schon gedacht, sie erfüllt jedoch nicht sämtliche Kriterien, die ich hier benötige:
Die Hausanschrift ist die einzige Anschriftart, die dem Kunden fix zugeordnet werden kann, also ausschließlich kundenabhängig.

Die Rechnungs- und Lieferanschrift können aber bei jedem Projekt anders lauten, also kunden- und projektabhängig. Sie können auch identisch mit der Hausanschrift sein, weshalb die Zuordnung der Anschrift zur Anschriftart (zumindest bei diesen beiden Anschriften) meiner Meinung nach in der Projekte-Tabelle erfolgen muss, die Auswahlmöglichkeit aber auch die Hausanschrift enthalten muss.

DF6GL

Hallo,

ok, Du hast Recht, wenn die Daten sich so verhalten..


Wenn also ein Kunde nur EINE Adresse erhalten kann  (--->  keine 1:n-Beziehung) , und Projekte unabhängig davon ein oder mehrere 1:n-Beziehung) , dann würde ich auf die Forderung, alles in einer Anschriftentabelle unterzubringen zu wollen, erstmal abweichen.   Führe in der Kundentabelle alle Felder  (Ort, Straße, Postfach,PLZ, etc) für die (einzige) Kundenanschrift mit, für die Projektzuordnung der Anschriften ist dann die Tabelle "tblProjektAnschriften" zuständig, in der die ProjektID und die AnschriftenartID geführt werden.

Diese Konstellation kann dann noch weiter (über eine weitere Zwischentabelle)  aufgedröselt werden, wenn z. B. eine bestimmte Anschrift bei mehreren Projekten eines Kunden (oder allgemein für alle Kunden) verwendet werden soll/muss.


Denkbar auch,

dass in der Kundentabelle UND in der Projekttabelle der Fremdschlüssel zu tblKundenanschriften geführt wird.  Der FS in tblKunden wird mittels Kombi (in einem Bearbeitungformular!, nicht Nachschlagefeld in der Tabelle!)aus der tblKundenanschriften (in der alle möglichen Anschriften eines Kunden liegen und die eine Beziehung zu tblAnschriftenart besitzt))  mit Bedingung "Art=Hausanschrift") ausgewählt und gespeichert.   Für Tabelle tblProjektAnschriften gilt der  gleiche Vorgang  , lediglich mit Kriterium "Art <> Hausanschrift ".


goestaner

Vielen Dank erst mal für die schnelle Hilfe!
Ich werd's mal so versuchen!