ERD Abbildung "nur gültig von"

MoxxiManagarm

Top Contributor
Ich hoffe ich knn mein Problem ausreichend wiedergeben.

Es gehören immer mindestens 3 Entities zu diesem Fall. Beispiel:

Eine Bestellung kennt die Zieladresse und den Kunden. Der Kunde hat mehrere Adressen. Wie kann man im ERD abbilden, dass die Zieladresse der Bestellung eine dem Kunden zugeordnete Adresse sein muss. Oder kann man das nicht abbilden und diese Rahmenbedingung ist applikationsseitig zu gewährleisten?
 

AndiE

Top Contributor
Wenn man "Filiale" mit rein nimmt?
1 Kunde kann mehrere Filialen, haben aber eine Filiale nur zu einem Kunden gehören
1 Filiale kann mehrere Bestellungen bekommen, aber 1 Rechnung gehört zu einer Filiale
1 Kunde kann mehrere Rechnungen bekommen, aber jede Rechnung kann nur einem Kunden zugeordnet sein.

Wobei Bestellung und Rechnung nicht 1:1 sein braucht.

Meinst du das so?
 

MoxxiManagarm

Top Contributor
Wäre das gleiche Problem wie die Adresse.

Nein ich mein rein relational gesehen könnte die Bestellung in meinem Fall eine Adresse aufzeigen an dem der Kunde nicht wohnhaft ist.

Ich würde gerne dartellen dass der Kunde an der Lieferadresse auch wohnhaft sein muss und ich würde gerne wissen ob und wie dass auf der DB Schicht möglich ist
 

Anhänge

  • 20180424_180333.jpg
    20180424_180333.jpg
    4 MB · Aufrufe: 33

Thallius

Top Contributor
Also ich würde es nicht auf DB Schicht binden aber wenn du es unbedingt willst, dann binde halt die Rechnung an die Adresse und nicht den Kunden.

Gruß

Claus
 

MoxxiManagarm

Top Contributor
Danke für die Antworten. Ich hatte nur Bedenken weil es potenziell eine Fehlerquelle ist. Aber ich lese heraus, dass es anscheinend dafür nicht unbedingt ein best practice gibt, die Bedenken muss dann einfach die Applikation übernehmen.
 

Thallius

Top Contributor
Danke für die Antworten. Ich hatte nur Bedenken weil es potenziell eine Fehlerquelle ist. Aber ich lese heraus, dass es anscheinend dafür nicht unbedingt ein best practice gibt, die Bedenken muss dann einfach die Applikation übernehmen.

Du kannst, wenn du es unbedingt sicher machen willst, ja noch einen trigger nach dem insert und Update starten der testet ob die Bedingung erfüllt ist.
 

AndiE

Top Contributor
Ist das nicht zuviel des Guten?

Kunde(Kunden-ID(PK), Firma, Name, Straße, Ort, PLZ)

Bestellpos(Bestellpos-ID(PK), Waren-ID,Anzahl, Rechnungs-ID(FK))

Rechnung(Rechnungs-ID(PK), Kunden-ID(FK))

Wäre mein Entwurf.

De Frage ist doch, wieso Kunde und Adresse getrennt werden sollen?
 

mrBrown

Super-Moderator
Mitarbeiter
In einem (z.B.) Domänen-Modell würde man das mit OCL ausdrücken, etwa:
Code:
context Bestellung inv: self.kunde.adressen->includes(self.zieladresse)

Äquivalentes für ERD gibts afaik nicht, ich würd sowas auch sowieso Applikationsseitig lösen.
 

Neue Themen


Oben