3.1.3 Datenmodell für die Referenzimplementierung
Ecore-Datenmodell
UML-Datenmodell
Verbales Datenmodell
Das Datenmodell stellt einen sehr einfachen Online-Shop mit seinen Daten dar. Folgende Entitäten sind vorhanden:
- Adressen (aka
Address
)
- Personen (aka
Person
)
- Kunden (aka
Customer
)
- Rechnungen (aka
Invoice
)
- Artikel (aka
Article
)
- Artikeltypen (aka
ArticleType
)
Der Zusammenhang der Entitäten ist über die Beziehungen und Multiplizitäten modelliert und lässt sich wie folgt beschreiben:
- eine Person hat mindestens eine Adresse (es können aber auch mehr sein)
- eine Adresse ist keiner, einer oder vielen Personen zugeordnet
- ein Kunde ist die Spezialisierung einer Person (somit hat er auch min. eine Adresse)
- der Online-Shop hat Artikel
- die Artikel lassen sich unterteilen in:
- erwerbbare Artikel (sind keiner Rechnung zugeordnet)
- bereits verkaufte Artikel (sind einer Rechnung zugeordnet)
- jede Rechnung ist genau einem Kunden zugeordnet
- einem Kunden können keine, eine oder viele Rechnungen zugeordnet sein
- jede Rechnung besteht aus mindestens einen Artikel
- jedem Artikel ist genau ein Artikeltyp zugeordnet
Spezielle fachliche Restriktionen, welche über das oben dargestellte Datenmodell hinausgehen ( wie zum Beispiel, dass einmal angelegte Rechnungen nicht mehr gelöscht werden dürfen) werden vom Generator nicht umgesetzt. Dafür muss dan der Code der Geschäftslogik angepasst werden.
Löschregeln
Aus dem Datenmodell ergeben sich folgende Löschregeln:
- Adresse löschen
- überprüfen, ob der Adresse eine Person zugewiesen ist bzw. mehrere Personen zugewiesen sind
- nein -> Optionsfenster "Wollen sie Adresse löschen? -> Adresse löschen -> ENDE
- ja -> weiter mit 2.
- für jede Relation Adresse-Person ist zu prüfen: ist der Person nur eine Adresse zugewiesen
- nein -> Optionsfenster "Wollen sie Adresse löschen? mit dem Hinweis, dass die Adresse von Person_X1, Person_X" referenziert wird -> Adresse löschen -> ENDE
- ja -> Optionsfenster "Wollen sie Adresse löschen? mit dem Hinweis, dass die Adresse von Person_X1, Person_X" als einzige Adresse referenziert wird und deswegen auch diese Person(en) gelöscht werden und dadurch dann die Rechnungen_y1 bis Rechnung_y2 betroffen sind und dadurch die Artikel_z1 bis Artikel_z3 betroffen sind -> Adresse löschen -> ENDE
weiter zu 3.2 Aufteilung des Systems
zurück zu 3.1.2 Vorgehensweise
zurück zu 3.1 Persistente Daten
zurück zu 3 Entwurf
zurück zu Frontpage