(vision) SCS/DDD
This commit is contained in:
@@ -0,0 +1,180 @@
|
||||
@startuml
|
||||
title "Detailliertes Datenmodell: Veranstaltungs_Context"
|
||||
|
||||
!theme vibrant
|
||||
|
||||
' Externe Referenzen werden der Übersichtlichkeit halber als vereinfachte Entitäten dargestellt.
|
||||
package "Externe Referenzen (Andere Kontexte)" {
|
||||
class Verein_ZNS
|
||||
class Person_ZNS
|
||||
class OETORegelReferenz
|
||||
class Sportfachliche_Stammdaten
|
||||
}
|
||||
|
||||
package "Veranstaltungsplanung" as VeranstaltungsContext {
|
||||
|
||||
' #################### Aggregate Root: VeranstaltungsRahmen ####################
|
||||
class VeranstaltungsRahmen <<(A,orange) Aggregate Root>> {
|
||||
+ veranstaltungsRahmenId : UUID
|
||||
--
|
||||
+ name : string ' z.B. "Reitertage Musterhof Frühling 2025"
|
||||
+ zeitraum : DatumsbereichVO
|
||||
+ austragungsort : AdresseVO
|
||||
' FK zu Service_ZNS_Daten.Verein_ZNS
|
||||
# hauptveranstalter_verein_nr : VARCHAR(4) <<FK>>
|
||||
}
|
||||
|
||||
' #################### Aggregate Root: Turnier_OEPS ####################
|
||||
class Turnier_OEPS <<(A,orange) Aggregate Root>> {
|
||||
' A-Satz, Stelle 2-6
|
||||
+ oepsTurnierNr : VARCHAR(5) <<PK>>
|
||||
--
|
||||
' FK zu VeranstaltungsRahmen
|
||||
# veranstaltungsRahmenId : UUID <<FK>>
|
||||
' A-Satz, Stelle 7-31
|
||||
+ name_ort : VARCHAR(25)
|
||||
' A-Satz, Stelle 32-47
|
||||
+ zeitraum : DatumsbereichVO
|
||||
' A-Satz, Stelle 48-72
|
||||
+ kategorie_text_turnier : VARCHAR(25)
|
||||
+ turnierart_sparte : string ' z.B. CDN-A, CSN-B*
|
||||
' A-Satz (Ergebnis), Stelle 73-75
|
||||
+ protokoll_version_oeps : VARCHAR(3)
|
||||
' A-Satz (Ergebnis), Stelle 76-95
|
||||
+ meldestelle_software_version : VARCHAR(20)
|
||||
' A-Satz (Ergebnis), Stelle 96-103
|
||||
+ link_id_turnier : VARCHAR(8)
|
||||
}
|
||||
|
||||
' #################### Aggregate Root: Meisterschaft_Cup_Serie ####################
|
||||
class Meisterschaft_Cup_Serie <<(A,orange) Aggregate Root>> {
|
||||
+ mcsId : UUID <<PK>>
|
||||
--
|
||||
+ name : string ' z.B. "XYZ Sommercup 2025"
|
||||
+ typ : string ' Meisterschaft, Cup, Serie
|
||||
+ jahr : INTEGER
|
||||
+ sparte : string
|
||||
# oetoRegelRefId : UUID <<FK>>
|
||||
}
|
||||
|
||||
' #################### Entitäten innerhalb des Turnier_OEPS Aggregats ####################
|
||||
' Ein Bewerb innerhalb eines Turniers
|
||||
entity Pruefung_OEPS {
|
||||
+ pruefungId : UUID <<PK>>
|
||||
--
|
||||
' B-Satz, Stelle 61-63 (3-stellig)
|
||||
+ oepsBewerbNr : VARCHAR(3)
|
||||
' B-Satz, Stelle 5-39
|
||||
+ name_text_pruefung : VARCHAR(35)
|
||||
' B-Satz, Stelle 40-43
|
||||
+ klasse_text : VARCHAR(4)
|
||||
' B-Satz, Stelle 44-51
|
||||
+ kategorie_text_pruefung : VARCHAR(8)
|
||||
' B-Satz, Stelle 52-59
|
||||
+ datumPruefung : Date
|
||||
' Zur Steuerung der spartenspezifischen Logik
|
||||
+ artDisziplin : DisziplinVO
|
||||
' B-Satz (Ergebnis), Stelle 64-71
|
||||
+ link_id_pruefung : VARCHAR(8)
|
||||
}
|
||||
|
||||
' Eine Abteilung eines Bewerbs
|
||||
entity Pruefung_Abteilung {
|
||||
+ abteilungId : UUID <<PK>>
|
||||
--
|
||||
' B-Satz, Stelle 4
|
||||
+ oepsAbteilungNr : INTEGER
|
||||
+ bezeichnung : string ' z.B. "Abt. 1: Junioren"
|
||||
' B-Satz (Ergebnis), Stelle 52-54
|
||||
+ anzahl_starter_gemeldet : INTEGER
|
||||
' B-Satz (Ergebnis), Stelle 55-60 (ohne Komma)
|
||||
+ geldpreis_summe : DECIMAL
|
||||
}
|
||||
|
||||
' Entität zur Speicherung der konkreten Anforderungen für eine Prüfung/Abteilung
|
||||
entity PruefungsAnforderungen {
|
||||
+ anforderungenId: UUID <<PK>>
|
||||
--
|
||||
' Kann sich auf eine Pruefung_OEPS oder eine Pruefung_Abteilung beziehen
|
||||
# bezugs_id: UUID <<FK>>
|
||||
' FK zu Service_OeTO_Verwaltung.OETORegelReferenz
|
||||
# oeto_regel_ref_id: UUID <<FK>>
|
||||
}
|
||||
|
||||
entity Anforderung_Lizenz {
|
||||
# anforderungenId: UUID <<FK>>
|
||||
# lizenzTypCode: VARCHAR(4) <<FK>>
|
||||
}
|
||||
|
||||
entity Anforderung_Altersklasse {
|
||||
# anforderungenId: UUID <<FK>>
|
||||
# altersklasseCode: VARCHAR(4) <<FK>>
|
||||
}
|
||||
|
||||
' #################### Spartenspezifische Erweiterungen ####################
|
||||
package "Sportfachliche Details für Prüfungen" {
|
||||
' Alle Spezifika sind 1:1 mit Pruefung_OEPS verbunden
|
||||
entity DressurPruefungSpezifika {
|
||||
# pruefungId : UUID <<PK>> <<FK>>
|
||||
--
|
||||
' FK zu Service_OeTO_Verwaltung.Sportfachliche_Stammdaten
|
||||
# aufgabe_stammdatum_id : UUID <<FK>>
|
||||
+ platz_groesse_code : string ' z.B. 20x40, 20x60
|
||||
}
|
||||
entity SpringenPruefungSpezifika {
|
||||
# pruefungId : UUID <<PK>> <<FK>>
|
||||
--
|
||||
' FK zu Service_ZNS_Daten.Person_ZNS
|
||||
# parcours_designer_person_id : VARCHAR(6) <<FK>>
|
||||
+ anzahl_hindernisse : INTEGER
|
||||
+ hoehe_max_cm : INTEGER
|
||||
+ erlaubte_zeit_sek : INTEGER
|
||||
' FK zu Service_OeTO_Verwaltung.Sportfachliche_Stammdaten
|
||||
# wertungs_verfahren_stammdatum_id : UUID <<FK>>
|
||||
+ anzahl_umlaeufe : INTEGER
|
||||
+ anzahl_stechen : INTEGER
|
||||
}
|
||||
' (Vielseitigkeit und RVK Spezifika hier analog)
|
||||
}
|
||||
|
||||
' #################### Value Objects ####################
|
||||
class DatumsbereichVO <<VO>> {
|
||||
+von: Date,
|
||||
+bis: Date
|
||||
}
|
||||
class AdresseVO <<VO>> {
|
||||
+strasse: string,
|
||||
+plz: string,
|
||||
+ort: string
|
||||
}
|
||||
class DisziplinVO <<VO>> {
|
||||
+name: string
|
||||
}
|
||||
|
||||
' #################### Beziehungen ####################
|
||||
' Aggregat-Hierarchie
|
||||
VeranstaltungsRahmen "1" -- "1..*" Turnier_OEPS : "beinhaltet"
|
||||
Turnier_OEPS "1" *-- "1..*" Pruefung_OEPS : "besteht aus"
|
||||
Pruefung_OEPS "1" *-- "1..*" Pruefung_Abteilung : "unterteilt in"
|
||||
|
||||
' Anforderungen zuordnen
|
||||
Pruefung_OEPS "1" -- "1" PruefungsAnforderungen : "hat"
|
||||
Pruefung_Abteilung "1" -- "0..1" PruefungsAnforderungen : "hat spezielle"
|
||||
PruefungsAnforderungen "1" -- "*" Anforderung_Lizenz
|
||||
PruefungsAnforderungen "1" -- "*" Anforderung_Altersklasse
|
||||
|
||||
' Sparten-Spezifika zuordnen (Vererbung/Erweiterung)
|
||||
Pruefung_OEPS <|-- DressurPruefungSpezifika
|
||||
Pruefung_OEPS <|-- SpringenPruefungSpezifika
|
||||
|
||||
' Meisterschaft/Cup Beziehungen
|
||||
class MCS_Wertungspruefung
|
||||
(Meisterschaft_Cup_Serie, MCS_Wertungspruefung) .up. Pruefung_Abteilung
|
||||
}
|
||||
|
||||
' Beziehungen zu externen Kontexten
|
||||
VeranstaltungsContext.VeranstaltungsRahmen -- Verein_ZNS : "veranstaltet von"
|
||||
VeranstaltungsContext.SpringenPruefungSpezifika -- Person_ZNS : "Parcoursdesigner"
|
||||
' Weitere Beziehungen zu OETORegelReferenz, Stammdaten etc.
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user