181 lines
6.3 KiB
Plaintext
181 lines
6.3 KiB
Plaintext
@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
|