Klassen impl
This commit is contained in:
BIN
Binary file not shown.
|
After Width: | Height: | Size: 629 KiB |
@@ -0,0 +1,610 @@
|
||||
@startuml
|
||||
!theme vibrant
|
||||
|
||||
title Datenbankmodell ÖTO - Service-Orientierte Modulare Struktur (inkl. aller Sparten)
|
||||
' Ankerpunkt: Montag 19. Mai, 10:53 Uhr (basierend auf Nutzer-Input und vorherigen Diskussionen)
|
||||
|
||||
' Diagramm-Optionen
|
||||
skinparam linetype ortho
|
||||
hide empty members
|
||||
skinparam shadowing false
|
||||
skinparam defaultFontName "Segoe UI"
|
||||
skinparam defaultFontSize 10
|
||||
skinparam roundCorner 10
|
||||
allow_mixing
|
||||
|
||||
' --- Enums (mit Suffix E) ---
|
||||
enum SparteE {
|
||||
DRESSUR,
|
||||
SPRINGEN,
|
||||
VIELSEITIGKEIT,
|
||||
FAHREN,
|
||||
VOLTIGIEREN,
|
||||
WESTERN,
|
||||
DISTANZ,
|
||||
ISLAND,
|
||||
PFERDESPORT_SPIEL,
|
||||
SONDERPRUEFUNG,
|
||||
SONSTIGE,
|
||||
UNBEKANNT
|
||||
}
|
||||
enum RegelwerkTypE {
|
||||
OETO,
|
||||
FEI,
|
||||
SONSTIGE
|
||||
}
|
||||
enum PruefungsaufgabeNationE {
|
||||
NATIONAL_OEPS,
|
||||
FEI,
|
||||
SONSTIGE
|
||||
}
|
||||
enum PruefungsaufgabeRichtverfahrenModusE {
|
||||
GM,
|
||||
GT,
|
||||
NICHT_SPEZIFIZIERT
|
||||
}
|
||||
enum PruefungsaufgabeViereckE {
|
||||
VIERECK_20x40,
|
||||
VIERECK_20x60,
|
||||
ANDERE,
|
||||
UNBEKANNT
|
||||
}
|
||||
enum ArtDesStechensE {
|
||||
KEIN_STECHEN,
|
||||
FEHLER_ZEIT_NORMAL,
|
||||
FEHLER_ZEIT_AM3,
|
||||
SIEGERUNDE_SR1_MIT_UEBERNAHME_GP,
|
||||
SIEGERUNDE_SR2_OHNE_UEBERNAHME_GP,
|
||||
ZWEI_STECHEN_AM4, ZWEI_STECHEN_AM6,
|
||||
SONDERREGELUNG_AUSSCHREIBUNG
|
||||
}
|
||||
enum FunktionaerRolleE {
|
||||
RICHTER,
|
||||
RICHTER_VORSITZ,
|
||||
RICHTER_BEI_C,
|
||||
RICHTER_AM_ABREITEPLATZ,
|
||||
PARCOURSBAUER,
|
||||
PARCOURSBAU_ASSISTENT,
|
||||
STEWARD,
|
||||
TECHNISCHER_DELEGIERTER,
|
||||
TURNIERLEITER,
|
||||
TURNIERBEAUFTRAGTER,
|
||||
TIERARZT_TURNIER,
|
||||
HUFSCHMIED_TURNIER,
|
||||
MELD,
|
||||
RECHENSTELLE,
|
||||
SPRECHER,
|
||||
REITERSPRECHER,
|
||||
ZEITNEHMER,
|
||||
SCHREIBER_RICHTER,
|
||||
HELFER_PARCOURS,
|
||||
SONSTIGE_FUNKTION
|
||||
}
|
||||
enum RichterPositionE {
|
||||
C,
|
||||
E,
|
||||
H,
|
||||
B,
|
||||
M,
|
||||
VORSITZ,
|
||||
RICHTERTURM,
|
||||
SONSTIGE_POSITION
|
||||
}
|
||||
enum DatenQuelleE {
|
||||
OEPS_ZNS,
|
||||
MANUELL_NATIONAL,
|
||||
MANUELL_INTERNATIONAL,
|
||||
SYSTEM_GENERIERTR
|
||||
}
|
||||
enum NennungStatusE {
|
||||
GEMELDET,
|
||||
MANUELL_ERFASST,
|
||||
BESTAETIGT,
|
||||
NACHGENANNT,
|
||||
BEZAHLT,
|
||||
STARTBERECHTIGT,
|
||||
ABGEMELDET_REITER,
|
||||
ABGEMELDET_VERANSTALTER,
|
||||
STORNIERT_SYSTEM
|
||||
}
|
||||
enum BeginnzeitTypE {
|
||||
FIX_UM,
|
||||
ANSCHLIESSEND,
|
||||
CA_UM,
|
||||
NACH_VORHERIGEM_BEWERB_ABTEILUNG
|
||||
}
|
||||
enum EventStatusE {
|
||||
IN_PLANUNG,
|
||||
GENEHMIGT_VERANSTALTER,
|
||||
OEFFENTLICH_SICHTBAR,
|
||||
AKTIV,
|
||||
ABGESCHLOSSEN,
|
||||
ABGESAGT
|
||||
}
|
||||
enum PlatzTypE {
|
||||
AUSTRAGUNG,
|
||||
VORBEREITUNG,
|
||||
LONGIEREN,
|
||||
SONSTIGES
|
||||
}
|
||||
enum SportfachStammdatenTypE {
|
||||
DRESSURAUFGABE,
|
||||
HINDERNISTYP_SPRINGEN,
|
||||
WERTUNGSVERFAHREN,
|
||||
RVK_PUNKTETABELLE,
|
||||
OETO_REGEL_TEXT,
|
||||
SONSTIGES
|
||||
}
|
||||
enum CupSerieTypE {
|
||||
CUP,
|
||||
MEISTERSCHAFT_LAND,
|
||||
MEISTERSCHAFT_BUND,
|
||||
SERIE,
|
||||
SONDERWERTUNG
|
||||
}
|
||||
|
||||
' #####################################################################
|
||||
' ### Service OeTO-Verwaltung (Regeln, Lizenzen, Definitionen) ###
|
||||
' #####################################################################
|
||||
package Service_OeTO_Verwaltung {
|
||||
entity OETORegelReferenz {
|
||||
+ oeto_regel_referenz_id : UUID <<PK>>
|
||||
--
|
||||
paragraph_nummer : VARCHAR
|
||||
kapitel_titel : VARCHAR?
|
||||
kurzbeschreibung_regel : TEXT?
|
||||
oeto_version_datum : DATE
|
||||
url_detail : VARCHAR?
|
||||
regelwerk_typ : RegelwerkTypE ' ÖTO oder FEI
|
||||
}
|
||||
|
||||
' Definiert Funktionärsqualifikationen
|
||||
entity QualifikationsTyp {
|
||||
+ qual_typ_code : VARCHAR <<PK>> ' z.B. "R-DPF", "PB-S", "TD-NAT"
|
||||
--
|
||||
bezeichnung : VARCHAR
|
||||
sparte : SparteE
|
||||
# oeto_regel_ref_id : UUID <<FK>>?
|
||||
}
|
||||
QualifikationsTyp -- "?" OETORegelReferenz : unterliegt
|
||||
|
||||
' Deine LizenzTyp_OEPS, umbenannt für globale Lizenzdefinitionen
|
||||
entity LizenzTypGlobal {
|
||||
+ lizenz_typ_global_code : VARCHAR(10) <<PK>> ' z.B. "R1", "RS2", "F1", "S (Startkarte)"
|
||||
--
|
||||
bezeichnung : VARCHAR
|
||||
sparte_primaer : SparteE? ' Hauptsparte dieser Lizenz
|
||||
kategorie_lizenz_text : VARCHAR ' z.B. "Reiterlizenz", "Startkarte", "Fahrerlizenz", "Funktionärsqualifikation"
|
||||
stufe : VARCHAR? ' z.B. "1", "2", "S"
|
||||
beschreibung_berechtigung : TEXT?
|
||||
# oeto_regel_ref_id : UUID <<FK>>?
|
||||
}
|
||||
LizenzTypGlobal -- "?" OETORegelReferenz : basiert auf
|
||||
|
||||
entity AltersklasseDefinition {
|
||||
+ altersklasse_code : VARCHAR(10) <<PK>> ' z.B. "JG", "U18", "YR", "ALLG"
|
||||
--
|
||||
bezeichnung : VARCHAR
|
||||
min_alter : INTEGER?
|
||||
max_alter : INTEGER?
|
||||
geschlecht_filter : CHAR(1)? ' W, M, oder null für alle
|
||||
# oeto_regel_ref_id : UUID <<FK>>?
|
||||
}
|
||||
AltersklasseDefinition -- "?" OETORegelReferenz : definiert durch
|
||||
|
||||
' Für Dressuraufgaben, Richtverfahren etc.
|
||||
entity Sportfachliche_Stammdaten {
|
||||
+ stammdatum_id : UUID <<PK>>
|
||||
--
|
||||
typ : SportfachStammdatenTypE
|
||||
code : VARCHAR ' z.B. "GA02/23" (Dressuraufgabe), "A2_OETO204" (Richtverfahren)
|
||||
bezeichnung : VARCHAR
|
||||
beschreibung_details_json : TEXT ' Strukturierte Details als JSON (z.B. Lektionen, Fehlerpunkte)
|
||||
sparte_zugehoerigkeit : SparteE
|
||||
nation_gueltigkeit: PruefungsaufgabeNationE? ' NATIONAL_OEPS, FEI
|
||||
viereck_groesse: PruefungsaufgabeViereckE? ' Für Dressuraufgaben
|
||||
richtverfahren_modus: PruefungsaufgabeRichtverfahrenModusE? ' GM/GT für Dressuraufgaben
|
||||
istAktiv: Boolean
|
||||
# oeto_regel_ref_id : UUID <<FK>>?
|
||||
}
|
||||
Sportfachliche_Stammdaten -- "?" OETORegelReferenz : referenziert
|
||||
}
|
||||
' --- Ende Service OeTO-Verwaltung ---
|
||||
|
||||
|
||||
' #####################################################################
|
||||
' ### Service ZNS-Daten (Staging/Rohdaten von OEPS) ###
|
||||
' #####################################################################
|
||||
package Service_ZNS_Daten {
|
||||
entity Verein_ZNS_Staging {
|
||||
+ oeps_vereins_nr : VARCHAR(4) <<PK>> ' Aus VEREIN01.dat
|
||||
--
|
||||
name : VARCHAR(50)
|
||||
import_timestamp: TIMESTAMP
|
||||
}
|
||||
|
||||
entity Person_ZNS_Staging {
|
||||
+ oeps_satz_nr_person : VARCHAR(6) <<PK>> ' Aus LIZENZ01.dat / RICHT01.dat
|
||||
--
|
||||
familienname : VARCHAR(50)
|
||||
vorname : VARCHAR(25)
|
||||
geburtsdatum_text : VARCHAR(8) ' JJJJMMTT
|
||||
geschlecht_code : CHAR(1)
|
||||
nationalitaet_code : VARCHAR(3)
|
||||
bundesland_code_oeps : VARCHAR(2)?
|
||||
vereinsname_oeps_roh : VARCHAR(50)?
|
||||
mitglied_nr_verein : VARCHAR(8)?
|
||||
fei_id_person : VARCHAR(10)?
|
||||
sperrliste_flag_oeps : CHAR(1)? ' "S" oder BLANK
|
||||
kader_flag_oeps : CHAR(1)?
|
||||
telefon_roh : VARCHAR(21)?
|
||||
reiterlizenz_roh : VARCHAR(4)?
|
||||
startkarte_roh : CHAR(1)?
|
||||
fahrlizenz_roh : VARCHAR(2)?
|
||||
altersklasse_jugend_code_oeps : VARCHAR(2)?
|
||||
altersklasse_jungerreiter_code_oeps : CHAR(1)?
|
||||
jahr_letzte_zahlung_lizenz_oeps : INTEGER?
|
||||
lizenzinfo_raw_oeps : VARCHAR(10)?
|
||||
qualifikationen_raw_oeps: VARCHAR(30)? ' Aus RICHT01.dat
|
||||
import_timestamp: TIMESTAMP
|
||||
}
|
||||
|
||||
entity Pferd_ZNS_Staging {
|
||||
+ oeps_satz_nr_pferd : VARCHAR(10) <<PK>> ' Aus PFERDE01.dat
|
||||
--
|
||||
oeps_kopf_nr : VARCHAR(4)? ' Wird oft zusätzlich verwendet
|
||||
name : VARCHAR(30)
|
||||
lebensnummer : VARCHAR(9)?
|
||||
geburtsjahr : INTEGER?
|
||||
geschlecht_code : CHAR(1)?
|
||||
farbe : VARCHAR(15)?
|
||||
abstammung_vater_name : VARCHAR(30)?
|
||||
abstammung_info_roh : VARCHAR(15)? ' Feld "ABSTAMMUNG"
|
||||
oeps_verein_nr_pferd_roh : VARCHAR(4)?
|
||||
verantwortliche_person_name_roh: VARCHAR(75)?
|
||||
fei_pass_nr : VARCHAR(10)?
|
||||
letzte_zahlung_pferdegebuehr_jahr : INTEGER?
|
||||
import_timestamp: TIMESTAMP
|
||||
}
|
||||
}
|
||||
' --- Ende Service ZNS-Daten ---
|
||||
|
||||
' ####################################################################################
|
||||
' ### Domänen Service: Sportler & Pferde Verwaltung (aus ZNS und manuell) ###
|
||||
' ####################################################################################
|
||||
package Service_Sportler_Pferde_Verwaltung {
|
||||
entity DomPerson {
|
||||
+ person_id: UUID <<PK>>
|
||||
--
|
||||
oeps_satz_nr: VARCHAR(6) <<UQ>>?
|
||||
nachname: VARCHAR
|
||||
vorname: VARCHAR
|
||||
geburtsdatum: DATE?
|
||||
geschlecht: GeschlechtE?
|
||||
nationalitaet_code: VARCHAR(3)?
|
||||
fei_id: VARCHAR(10)?
|
||||
telefon: VARCHAR?
|
||||
email: VARCHAR?
|
||||
# stamm_verein_id: UUID <<FK>>? ' Verweis auf DomVerein.verein_id
|
||||
ist_gesperrt: BOOLEAN
|
||||
sperr_grund: TEXT?
|
||||
daten_quelle: DatenQuelleE
|
||||
ist_aktiv: BOOLEAN
|
||||
}
|
||||
|
||||
entity DomPferd {
|
||||
+ pferd_id: UUID <<PK>>
|
||||
--
|
||||
oeps_satz_nr_pferd: VARCHAR(10) <<UQ>>?
|
||||
oeps_kopf_nr: VARCHAR(4)?
|
||||
name: VARCHAR
|
||||
lebensnummer: VARCHAR?
|
||||
geburtsjahr: INTEGER?
|
||||
geschlecht_pferd: CHAR(1)? ' oder Enum
|
||||
# besitzer_person_id: UUID <<FK>>?
|
||||
# verantwortlicher_person_id: UUID <<FK>>?
|
||||
# heimat_verein_id: UUID <<FK>>?
|
||||
daten_quelle: DatenQuelleE
|
||||
ist_aktiv: BOOLEAN
|
||||
}
|
||||
|
||||
entity DomVerein {
|
||||
+ verein_id: UUID <<PK>>
|
||||
--
|
||||
oeps_vereins_nr: VARCHAR(4) <<UQ>>
|
||||
name: VARCHAR
|
||||
kuerzel: VARCHAR?
|
||||
bundesland_code: VARCHAR(2)?
|
||||
}
|
||||
|
||||
entity DomLizenz {
|
||||
+ lizenz_id: UUID <<PK>>
|
||||
--
|
||||
# person_id: UUID <<FK>>
|
||||
# lizenz_typ_global_code: VARCHAR(10) <<FK>> ' Verweis auf Service_OeTO_Verwaltung.LizenzTypGlobal
|
||||
gueltig_bis_jahr: INTEGER?
|
||||
ist_aktiv_bezahlt: BOOLEAN ' Info aus LIZENZINFO
|
||||
}
|
||||
|
||||
entity DomQualifikation {
|
||||
+ qualifikation_id: UUID <<PK>>
|
||||
--
|
||||
# person_id: UUID <<FK>>
|
||||
# qual_typ_code: VARCHAR <<FK>> ' Verweis auf Service_OeTO_Verwaltung.QualifikationsTyp
|
||||
details: VARCHAR?
|
||||
}
|
||||
|
||||
DomPerson "1" -- "0..*" DomLizenz : besitzt
|
||||
DomLizenz -- "1" Service_OeTO_Verwaltung.LizenzTypGlobal : ist vom Typ
|
||||
DomPerson "1" -- "0..*" DomQualifikation : besitzt
|
||||
DomQualifikation -- "1" Service_OeTO_Verwaltung.QualifikationsTyp : ist vom Typ
|
||||
DomPerson "0..*" -- "1" DomVerein : hat Stammverein
|
||||
DomPferd "0..*" -- "1" DomPerson : hat Besitzer
|
||||
DomPferd "0..*" -- "1" DomPerson : hat Verantwortlichen
|
||||
DomPferd "0..*" -- "1" DomVerein : hat Heimatverein
|
||||
}
|
||||
' --- Ende Service Sportler & Pferde Verwaltung ---
|
||||
|
||||
|
||||
' #####################################################################
|
||||
' ### Service Veranstaltungsplanung (Events, Turniere, Prüfungen) ###
|
||||
' #####################################################################
|
||||
package Service_Veranstaltungsplanung {
|
||||
' Entspricht unserem "Event"
|
||||
entity VeranstaltungsRahmen {
|
||||
+ veranst_rahmen_id : UUID <<PK>>
|
||||
--
|
||||
name : VARCHAR
|
||||
datum_von_gesamt : DATE
|
||||
datum_bis_gesamt : DATE
|
||||
# hauptveranstalter_verein_id : UUID <<FK>> ' Verweis auf DomVerein
|
||||
ort_text: VARCHAR
|
||||
status: EventStatusE
|
||||
}
|
||||
|
||||
' Entspricht unserem "Turnier"
|
||||
entity Turnier_OEPS {
|
||||
+ turnier_id : UUID <<PK>> ' Eigene UUID für interne Zwecke
|
||||
--
|
||||
# veranst_rahmen_id : UUID <<FK>>
|
||||
oeps_turnier_nr : VARCHAR(5) <<UQ>> ' Offizielle OEPS Nummer
|
||||
name_zusatz : VARCHAR?
|
||||
datum_von_turnier : DATE
|
||||
datum_bis_turnier : DATE
|
||||
# oeto_kategorie_ids: List<UUID> '(FKs zu Service_OeTO_Verwaltung.BewerbsKategorieOetoDefinition)' ' Eher so'
|
||||
kategorie_text_turnier : VARCHAR(50) ' Wie in SUDO, kann mehrere ÖTO Kat. enthalten, z.B. "CDN-C Neu / CDNP-C Neu"'
|
||||
regelwerk_typ : RegelwerkTypE
|
||||
hauptsparte: SparteE
|
||||
}
|
||||
|
||||
' Entspricht unserer "BewerbBasis"
|
||||
entity Pruefung_OEPS {
|
||||
+ pruefung_db_id : UUID <<PK>>
|
||||
--
|
||||
# turnier_id : UUID <<FK>>
|
||||
oeps_bewerb_nr_display : INTEGER ' Eindeutige Nummer pro Turnier
|
||||
name_text_uebergeordnet : VARCHAR
|
||||
sparte : SparteE ' Explizit, wird ggf. aus oeps_kategorie_id vorgeschlagen
|
||||
# oeps_kategorie_id : UUID <<FK zu Service_OeTO_Verwaltung.BewerbsKategorieOetoDefinition>>
|
||||
' # klasse_id : UUID <<FK zu Service_OeTO_Verwaltung.BewerbsKlasseDefinition>> ' Wandert in Spezifika'
|
||||
' Verweise auf spartenspezifische Details '
|
||||
# dressur_spezifika_id: UUID <<FK>>?
|
||||
# springen_spezifika_id: UUID <<FK>>?
|
||||
}
|
||||
|
||||
' Entspricht unserer "Abteilung"
|
||||
entity Pruefung_Abteilung {
|
||||
+ pruefung_abteilung_db_id : UUID <<PK>>
|
||||
--
|
||||
# pruefung_db_id : UUID <<FK>>
|
||||
abteilungs_kennzeichen : VARCHAR ' z.B. "1", "A" -> für Anzeige "12/1"
|
||||
bezeichnung_abteilung : VARCHAR?
|
||||
' ... strukturierte Teilungskriterien ...
|
||||
}
|
||||
|
||||
entity Meisterschaft_Cup_Serie {
|
||||
+ mcs_id : UUID <<PK>>
|
||||
--
|
||||
name : VARCHAR
|
||||
typ : CupSerieTypE
|
||||
jahr : INTEGER
|
||||
sparte : SparteE
|
||||
# reglement_oeto_regel_ref_id : UUID <<FK>>?
|
||||
}
|
||||
|
||||
entity MCS_Wertungspruefung {
|
||||
# mcs_id : UUID <<PK>> <<FK>>
|
||||
# pruefung_abteilung_db_id : UUID <<PK>> <<FK>>
|
||||
--
|
||||
faktor_fuer_wertung : DECIMAL?
|
||||
}
|
||||
|
||||
entity Platz {
|
||||
+ platz_id: UUID <<PK>>
|
||||
name: VARCHAR
|
||||
typ: PlatzTypE
|
||||
'.. berichtFelder ..
|
||||
}
|
||||
|
||||
entity Turnier_hat_Platz {
|
||||
# turnier_id: UUID <<PK>> <<FK>>
|
||||
# platz_id: UUID <<PK>> <<FK>>
|
||||
verwendungszweck: VARCHAR?
|
||||
}
|
||||
|
||||
|
||||
package Sportfachliche_Details_Pruefung {
|
||||
entity DressurPruefungSpezifika {
|
||||
+ pruefung_db_id : UUID <<PK>> <<FK>> ' 1:1 zu Pruefung_OEPS
|
||||
--
|
||||
# aufgabe_stammdatum_id : UUID <<FK>> ' Zu Service_OeTO_Verwaltung.Sportfachliche_Stammdaten (Typ DRESSURAUFGABE)
|
||||
# klasse_id : UUID <<FK>> ' Zu Service_OeTO_Verwaltung.BewerbsKlasseDefinition
|
||||
# richtverfahren_id: UUID <<FK>> ' Zu Service_OeTO_Verwaltung.Sportfachliche_Stammdaten (Typ WERTUNGSVERFAHREN_DRESSUR)
|
||||
viereck_groesse_code : PruefungsaufgabeViereckE
|
||||
' geplanteRichterPositionen: List<RichterPositionE> '
|
||||
}
|
||||
entity SpringenPruefungSpezifika {
|
||||
+ pruefung_db_id : UUID <<PK>> <<FK>> ' 1:1 zu Pruefung_OEPS
|
||||
--
|
||||
# klasse_id : UUID <<FK>> ' Zu Service_OeTO_Verwaltung.BewerbsKlasseDefinition (z.B. Höhe)
|
||||
# richtverfahren_id: UUID <<FK>> ' Zu Service_OeTO_Verwaltung.Sportfachliche_Stammdaten (Typ WERTUNGSVERFAHREN_SPRINGEN)
|
||||
art_des_stechens : ArtDesStechensE?
|
||||
'.. parcours infos ..
|
||||
}
|
||||
' ... Weitere Sparten (VS, RVK) analog ...
|
||||
}
|
||||
|
||||
' Beziehungen innerhalb Veranstaltungsplanung
|
||||
VeranstaltungsRahmen "1" -- "0..*" Turnier_OEPS
|
||||
Turnier_OEPS "1" -- "0..*" Pruefung_OEPS
|
||||
Pruefung_OEPS "1" -- "1..*" Pruefung_Abteilung
|
||||
Pruefung_OEPS "1" -- "0..1" Sportfachliche_Details_Pruefung.DressurPruefungSpezifika
|
||||
Pruefung_OEPS "1" -- "0..1" Sportfachliche_Details_Pruefung.SpringenPruefungSpezifika
|
||||
' ... Beziehungen zu weiteren Spezifika ...
|
||||
Meisterschaft_Cup_Serie "1" -- "0..*" MCS_Wertungspruefung
|
||||
Pruefung_Abteilung "1" -- "0..*" MCS_Wertungspruefung
|
||||
Turnier_OEPS "1" -- "0..*" Turnier_hat_Platz
|
||||
Platz "1" -- "0..*" Turnier_hat_Platz
|
||||
|
||||
' Beziehungen zu Service_OeTO_Verwaltung
|
||||
Sportfachliche_Details_Pruefung.DressurPruefungSpezifika -- Service_OeTO_Verwaltung.Sportfachliche_Stammdaten : "nutzt Aufgabe"
|
||||
Sportfachliche_Details_Pruefung.DressurPruefungSpezifika -- Service_OeTO_Verwaltung.BewerbsKlasseDefinition : "hat Klasse"
|
||||
Sportfachliche_Details_Pruefung.SpringenPruefungSpezifika -- Service_OeTO_Verwaltung.BewerbsKlasseDefinition : "hat Klasse"
|
||||
Pruefung_OEPS -- Service_OeTO_Verwaltung.BewerbsKategorieOetoDefinition : "hat ÖTO Kategorie"
|
||||
Turnier_OEPS -- Service_OeTO_Verwaltung.BewerbsKategorieOetoDefinition : "ist kategorisiert als"
|
||||
|
||||
' Beziehungen zu Service_Sportler_Pferde_Verwaltung (für Funktionäre etc.)
|
||||
Sportfachliche_Details_Pruefung.SpringenPruefungSpezifika -- Service_Sportler_Pferde_Verwaltung.DomPerson : "Parcoursdesigner" (als FK)
|
||||
}
|
||||
' --- Ende Service Veranstaltungsplanung ---
|
||||
|
||||
|
||||
' #####################################################################
|
||||
' ### Service Nennungsabwicklung (Nennungen, Startlisten, Ergebnisse) ###
|
||||
' #####################################################################
|
||||
package Service_Nennungsabwicklung {
|
||||
' Umbenannt von Nennung_OEPS für Domänenkontext
|
||||
entity Nennung {
|
||||
+ nennung_id : UUID <<PK>>
|
||||
--
|
||||
# pruefung_abteilung_db_id : UUID <<FK>>
|
||||
# teilnehmer_person_id : UUID <<FK>> ' Verweis auf DomPerson
|
||||
# genanntes_pferd_id : UUID <<FK>> ' Verweis auf DomPferd
|
||||
# genutzte_lizenz_id: UUID <<FK>>? ' Verweis auf DomLizenz des Teilnehmers
|
||||
nennungs_zeitpunkt : TIMESTAMP
|
||||
status_nennung : NennungStatusE
|
||||
kopf_nr_pferd_fuer_nennung : VARCHAR(4)? ' Für Anzeige/Abgleich, Pferd ist aber per ID verknüpft
|
||||
startgeld_bezahlt: BOOLEAN
|
||||
pferdepass_kontrolliert: BOOLEAN
|
||||
}
|
||||
|
||||
entity NennungsTeilnehmerSnapshot {
|
||||
+ snapshot_id: UUID <<PK>>
|
||||
# nennung_id: UUID <<FK>> (1:1 oder 1:0..1)
|
||||
--
|
||||
' Gesnapshotete Personendaten zum Zeitpunkt der Nennung '
|
||||
person_oeps_satz_nr: VARCHAR(6)?
|
||||
person_nachname: VARCHAR
|
||||
person_vorname: VARCHAR
|
||||
person_verein_name_snapshot: VARCHAR? ' Name des Vereins zum Zeitpunkt der Nennung '
|
||||
relevante_lizenz_kuerzel_snapshot: VARCHAR?
|
||||
' Gesnapshotete Pferdedaten zum Zeitpunkt der Nennung '
|
||||
pferd_oeps_kopf_nr: VARCHAR(4)?
|
||||
pferd_name_snapshot: VARCHAR
|
||||
}
|
||||
Nennung "1" -- "0..1" NennungsTeilnehmerSnapshot
|
||||
|
||||
entity Startfolge {
|
||||
+ startfolge_id: UUID <<PK>>
|
||||
# nennung_id: UUID <<FK>>
|
||||
start_nummer_display: INTEGER ' Die sichtbare Startnummer
|
||||
start_zeit_geplant: TIMESTAMP?
|
||||
start_zeit_effektiv: TIMESTAMP?
|
||||
status_start: VARCHAR ' z.B. GENANNT, GESTARTET, ABGEMELDET
|
||||
s4_kader_flag: BOOLEAN ' Für spezielle Kaderwertung
|
||||
}
|
||||
' Eine Nennung führt zu max. einem Startfolgeeintrag pro (Teil-)Prüfung
|
||||
Nennung "1" -- "0..1" Startfolge
|
||||
|
||||
' Umbenannt von Ergebnis_OEPS_Zeile
|
||||
entity Ergebnis_Zeile {
|
||||
+ ergebnis_zeile_id : UUID <<PK>>
|
||||
--
|
||||
# startfolge_id : UUID <<FK>>
|
||||
platz : INTEGER?
|
||||
ausschluss_disq_code : CHAR(1)?
|
||||
punkte_wertnote_text_ergebnis_roh : VARCHAR(10)? ' Rohwert, wie erfasst
|
||||
zeit_prozent_text_ergebnis_roh : VARCHAR(10)? ' Rohwert, wie erfasst
|
||||
stechen_sr_info_text_ergebnis_roh : VARCHAR(4)?
|
||||
geldpreis_betrag_ergebnis : DECIMAL?
|
||||
nation_code_fuer_ergebnis : VARCHAR(3)?
|
||||
platziert_flag : BOOLEAN
|
||||
' Verweise auf spartenspezifische Ergebnisdetails '
|
||||
# dressur_ergebnis_spezifika_id: UUID <<FK>>?
|
||||
# springen_ergebnis_spezifika_id: UUID <<FK>>?
|
||||
}
|
||||
Startfolge "1" -- "0..1" Ergebnis_Zeile
|
||||
|
||||
package Sportfachliche_Details_Ergebnis {
|
||||
entity DressurErgebnisSpezifika {
|
||||
+ ergebnis_zeile_id : UUID <<PK>> <<FK>>
|
||||
--
|
||||
gesamt_wertnote : DECIMAL(5,3)?
|
||||
gesamt_prozent : DECIMAL(5,2)?
|
||||
' Hier könnten Details zu Richterbewertungen pro Lektion folgen (Array von JSONs oder eigene Entitäten)
|
||||
}
|
||||
entity SpringenErgebnisSpezifika {
|
||||
+ ergebnis_zeile_id : UUID <<PK>> <<FK>>
|
||||
--
|
||||
stilnote_gesamt : DECIMAL(3,1)? ' Falls zutreffend
|
||||
}
|
||||
' Kind von SpringenErgebnisSpezifika oder direkt von Ergebnis_Zeile
|
||||
entity SpringenUmlaufErgebnis {
|
||||
+ umlauf_ergebnis_id : UUID <<PK>>
|
||||
--
|
||||
# springen_ergebnis_spezifika_id : UUID <<FK>> ' oder ergebnis_zeile_id
|
||||
umlauf_oder_stechen_nr : INTEGER ' 1=Grundumlauf, 2=1.Stechen etc.
|
||||
fehlerpunkte_hindernis : DECIMAL(4,2)?
|
||||
fehlerpunkte_zeit : DECIMAL(4,2)?
|
||||
zeit_benoetigt_sek : DECIMAL(5,2)?
|
||||
stilnote_umlauf : DECIMAL(3,1)?
|
||||
}
|
||||
SpringenErgebnisSpezifika "1" -- "0..*" SpringenUmlaufErgebnis : hat Umläufe/Stechen
|
||||
' ... Weitere Sparten (VS, RVK) analog ...
|
||||
}
|
||||
Ergebnis_Zeile "1" -- "0..1" Sportfachliche_Details_Ergebnis.DressurErgebnisSpezifika
|
||||
Ergebnis_Zeile "1" -- "0..1" Sportfachliche_Details_Ergebnis.SpringenErgebnisSpezifika
|
||||
}
|
||||
' --- Ende Service Nennungsabwicklung ---
|
||||
|
||||
|
||||
' #####################################################################
|
||||
' ### Paketübergreifende Beziehungen (Auswahl) ###
|
||||
' #####################################################################
|
||||
|
||||
' Veranstaltungsplanung <--> OeTO-Verwaltung
|
||||
Service_Veranstaltungsplanung.Sportfachliche_Details_Pruefung.DressurPruefungSpezifika -- Service_OeTO_Verwaltung.Sportfachliche_Stammdaten : "nutzt Aufgabe"
|
||||
Service_Veranstaltungsplanung.Sportfachliche_Details_Pruefung.DressurPruefungSpezifika -- Service_OeTO_Verwaltung.BewerbsKlasseDefinition : "hat Klasse"
|
||||
Service_Veranstaltungsplanung.Sportfachliche_Details_Pruefung.SpringenPruefungSpezifika -- Service_OeTO_Verwaltung.BewerbsKlasseDefinition : "hat Klasse"
|
||||
Service_Veranstaltungsplanung.Pruefung_OEPS -- Service_OeTO_Verwaltung.BewerbsKategorieOetoDefinition : "hat ÖTO Kategorie"
|
||||
Service_Veranstaltungsplanung.Turnier_OEPS -- Service_OeTO_Verwaltung.BewerbsKategorieOetoDefinition : "ist kategorisiert als"
|
||||
|
||||
' Veranstaltungsplanung <--> Sportler & Pferde Verwaltung (für Funktionäre)
|
||||
Service_Veranstaltungsplanung.Sportfachliche_Details_Pruefung.SpringenPruefungSpezifika -- Service_Sportler_Pferde_Verwaltung.DomPerson : "Parcoursdesigner"
|
||||
|
||||
' Nennungsabwicklung <--> Veranstaltungsplanung
|
||||
Service_Nennungsabwicklung.Nennung -- Service_Veranstaltungsplanung.Pruefung_Abteilung : "für"
|
||||
|
||||
' Nennungsabwicklung <--> Sportler & Pferde Verwaltung
|
||||
Service_Nennungsabwicklung.Nennung -- Service_Sportler_Pferde_Verwaltung.DomPerson : "durch Reiter"
|
||||
Service_Nennungsabwicklung.Nennung -- Service_Sportler_Pferde_Verwaltung.DomPferd : "mit Pferd"
|
||||
Service_Nennungsabwicklung.Nennung -- Service_Sportler_Pferde_Verwaltung.DomLizenz : "unter Lizenz (genutzte)"
|
||||
|
||||
|
||||
' ZNS Import Logik (konzeptionell)
|
||||
' Service_ZNS_Daten.Person_ZNS_Staging -> Service_Sportler_Pferde_Verwaltung.DomPerson
|
||||
' Service_ZNS_Daten.Pferd_ZNS_Staging -> Service_Sportler_Pferde_Verwaltung.DomPferd
|
||||
' Service_ZNS_Daten.Verein_ZNS_Staging -> Service_Sportler_Pferde_Verwaltung.DomVerein
|
||||
' Service_ZNS_Daten.Person_ZNS_Staging (lizenzinfo_raw_oeps, etc.) -> Service_Sportler_Pferde_Verwaltung.DomLizenz (über Service_OeTO_Verwaltung.LizenzTypGlobal)
|
||||
|
||||
@enduml
|
||||
@@ -0,0 +1,464 @@
|
||||
@startuml
|
||||
!theme vibrant
|
||||
|
||||
title Datenbankmodell ÖTO - Service-Orientierte Modulare Struktur (Stand: 19. Mai 2025, 10:53 Uhr)
|
||||
|
||||
' Diagramm-Optionen
|
||||
skinparam linetype ortho
|
||||
hide empty members
|
||||
skinparam shadowing false
|
||||
skinparam defaultFontName "Segoe UI"
|
||||
skinparam defaultFontSize 9 ' Etwas kleiner für mehr Übersicht
|
||||
skinparam roundCorner 10
|
||||
allow_mixing
|
||||
skinparam packageStyle rect
|
||||
|
||||
' --- Enums (mit Suffix E) ---
|
||||
enum SparteE {
|
||||
DRESSUR, SPRINGEN, VIELSEITIGKEIT, FAHREN, VOLTIGIEREN, WESTERN,
|
||||
DISTANZ, ISLAND, PFERDESPORT_SPIEL, SONDERPRUEFUNG, SONSTIGE, UNBEKANNT
|
||||
}
|
||||
enum RegelwerkTypE {
|
||||
OETO, FEI, SONSTIGE
|
||||
}
|
||||
enum PruefungsaufgabeNationE {
|
||||
NATIONAL_OEPS, FEI, SONSTIGE
|
||||
}
|
||||
enum PruefungsaufgabeRichtverfahrenModusE {
|
||||
GM, GT, NICHT_SPEZIFIZIERT
|
||||
}
|
||||
enum PruefungsaufgabeViereckE {
|
||||
VIERECK_20x40, VIERECK_20x60, ANDERE, UNBEKANNT
|
||||
}
|
||||
enum ArtDesStechensE {
|
||||
KEIN_STECHEN, FEHLER_ZEIT_NORMAL, FEHLER_ZEIT_AM3,
|
||||
SIEGERUNDE_SR1_MIT_UEBERNAHME_GP, SIEGERUNDE_SR2_OHNE_UEBERNAHME_GP,
|
||||
ZWEI_STECHEN_AM4, ZWEI_STECHEN_AM6, SONDERREGELUNG_AUSSCHREIBUNG
|
||||
}
|
||||
enum FunktionaerRolleE {
|
||||
RICHTER, RICHTER_VORSITZ, RICHTER_BEI_C, RICHTER_AM_ABREITEPLATZ,
|
||||
PARCOURSBAUER, PARCOURSBAU_ASSISTENT, STEWARD, TECHNISCHER_DELEGIERTER,
|
||||
TURNIERLEITER, TURNIERBEAUFTRAGTER, TIERARZT_TURNIER, HUFSCHMIED_TURNIER,
|
||||
MELD रात्रि, RECHENSTELLE, SPRECHER, REITERSPRECHER, ZEITNEHMER, SCHREIBER_RICHTER,
|
||||
HELFER_PARCOURS, SONSTIGE_FUNKTION
|
||||
}
|
||||
enum RichterPositionE {
|
||||
C, E, H, B, M, VORSITZ, RICHTERTURM, SONSTIGE_POSITION
|
||||
}
|
||||
enum DatenQuelleE {
|
||||
OEPS_ZNS, MANUELL_NATIONAL, MANUELL_INTERNATIONAL, SYSTEM_GENERIERTR
|
||||
}
|
||||
enum NennungStatusE {
|
||||
GEMELDET, MANUELL_ERFASST, BESTAETIGT, NACHGENANNT, BEZAHLT, STARTBERECHTIGT,
|
||||
ABGEMELDET_REITER, ABGEMELDET_VERANSTALTER, STORNIERT_SYSTEM
|
||||
}
|
||||
enum BeginnzeitTypE {
|
||||
FIX_UM, ANSCHLIESSEND, CA_UM, NACH_VORHERIGEM_BEWERB_ABTEILUNG
|
||||
}
|
||||
enum EventStatusE {
|
||||
IN_PLANUNG, GENEHMIGT_VERANSTALTER, OEFFENTLICH_SICHTBAR, AKTIV, ABGESCHLOSSEN, ABGESAGT
|
||||
}
|
||||
enum PlatzTypE {
|
||||
AUSTRAGUNG, VORBEREITUNG, LONGIEREN, SONSTIGES
|
||||
}
|
||||
enum SportfachStammdatenTypE {
|
||||
DRESSURAUFGABE, HINDERNISTYP_SPRINGEN, WERTUNGSVERFAHREN_SPRINGEN,
|
||||
WERTUNGSVERFAHREN_DRESSUR, RVK_PUNKTETABELLE, OETO_REGEL_TEXT, SONSTIGES
|
||||
}
|
||||
enum CupSerieTypE {
|
||||
CUP, MEISTERSCHAFT_LAND, MEISTERSCHAFT_BUND, SERIE, SONDERWERTUNG
|
||||
}
|
||||
|
||||
' #####################################################################
|
||||
' ### Service OeTO-Verwaltung (Regeln, Lizenzen, Definitionen) ###
|
||||
' #####################################################################
|
||||
package "Service OeTO-Verwaltung" {
|
||||
entity OETORegelReferenz {
|
||||
+ oeto_regel_referenz_id : UUID <<PK>>
|
||||
--
|
||||
paragraph_nummer : VARCHAR
|
||||
kapitel_titel : VARCHAR?
|
||||
kurzbeschreibung_regel : TEXT?
|
||||
oeto_version_datum : DATE
|
||||
url_detail : VARCHAR?
|
||||
regelwerk_typ : RegelwerkTypE
|
||||
}
|
||||
|
||||
' Definiert Funktionärsqualifikationen
|
||||
entity QualifikationsTyp {
|
||||
+ qual_typ_code : VARCHAR(20) <<PK>> ' z.B. "R-DPF", "PB-S", "TD-NAT"
|
||||
--
|
||||
bezeichnung : VARCHAR
|
||||
sparte : SparteE
|
||||
oeto_regel_ref_id : UUID <<FK>>?
|
||||
}
|
||||
QualifikationsTyp -- "?" OETORegelReferenz
|
||||
|
||||
' Globale Lizenz-/Startkartendefinitionen
|
||||
entity LizenzTypGlobal {
|
||||
+ lizenz_typ_global_code : VARCHAR(10) <<PK>> ' z.B. "R1", "RS2", "F1", "S" (Startkarte)
|
||||
--
|
||||
bezeichnung : VARCHAR
|
||||
sparte_primaer : SparteE?
|
||||
kategorie_lizenz: VARCHAR ' z.B. "Reiterlizenz", "Startkarte", "Fahrerlizenz"
|
||||
stufe: VARCHAR? ' z.B. "1", "2", "S"
|
||||
beschreibung_berechtigung : TEXT?
|
||||
oeto_regel_ref_id : UUID <<FK>>?
|
||||
}
|
||||
LizenzTypGlobal -- "?" OETORegelReferenz
|
||||
|
||||
entity AltersklasseDefinition {
|
||||
+ altersklasse_code : VARCHAR(10) <<PK>> ' z.B. "JG", "U18", "YR", "ALLG"
|
||||
--
|
||||
bezeichnung : VARCHAR
|
||||
min_alter : INTEGER?
|
||||
max_alter : INTEGER?
|
||||
geschlecht_filter : CHAR(1)?
|
||||
oeto_regel_ref_id : UUID <<FK>>?
|
||||
}
|
||||
AltersklasseDefinition -- "?" OETORegelReferenz
|
||||
|
||||
' Für Dressuraufgaben, Richtverfahren etc.
|
||||
entity Sportfachliche_Stammdaten {
|
||||
+ stammdatum_id : UUID <<PK>>
|
||||
--
|
||||
typ : SportfachStammdatenTypE
|
||||
code : VARCHAR ' z.B. "GA02/23", "A2_OETO204"
|
||||
bezeichnung : VARCHAR
|
||||
beschreibung_details_json : TEXT ' Strukturierte Details
|
||||
sparte_zugehoerigkeit : SparteE
|
||||
nation_gueltigkeit: PruefungsaufgabeNationE?
|
||||
viereck_groesse: PruefungsaufgabeViereckE?
|
||||
richtverfahren_modus: PruefungsaufgabeRichtverfahrenModusE?
|
||||
istAktiv: Boolean
|
||||
oeto_regel_ref_id : UUID <<FK>>?
|
||||
}
|
||||
Sportfachliche_Stammdaten -- "?" OETORegelReferenz
|
||||
}
|
||||
|
||||
' #####################################################################
|
||||
' ### Service ZNS-Daten (Staging/Rohdaten von OEPS) ###
|
||||
' #####################################################################
|
||||
package "Service ZNS-Daten (Staging)" {
|
||||
entity Verein_ZNS_Staging {
|
||||
+ oeps_vereins_nr : VARCHAR(4) <<PK>>
|
||||
name : VARCHAR(50)
|
||||
import_timestamp: TIMESTAMP
|
||||
}
|
||||
|
||||
entity Person_ZNS_Staging {
|
||||
+ oeps_satz_nr_person : VARCHAR(6) <<PK>>
|
||||
--
|
||||
familienname : VARCHAR(50)
|
||||
vorname : VARCHAR(25)
|
||||
geburtsdatum_text : VARCHAR(8)
|
||||
geschlecht_code : CHAR(1)
|
||||
nationalitaet_code : VARCHAR(3)
|
||||
bundesland_code_oeps : VARCHAR(2)?
|
||||
vereinsname_oeps_roh : VARCHAR(50)?
|
||||
mitglied_nr_verein : VARCHAR(8)?
|
||||
fei_id_person : VARCHAR(10)?
|
||||
sperrliste_flag_oeps : CHAR(1)?
|
||||
kader_flag_oeps : CHAR(1)?
|
||||
telefon_roh : VARCHAR(21)?
|
||||
reiterlizenz_roh : VARCHAR(4)?
|
||||
startkarte_roh : CHAR(1)?
|
||||
fahrlizenz_roh : VARCHAR(2)?
|
||||
altersklasse_jugend_code_oeps : VARCHAR(2)?
|
||||
altersklasse_jungerreiter_code_oeps : CHAR(1)?
|
||||
jahr_letzte_zahlung_lizenz_oeps : INTEGER?
|
||||
lizenzinfo_raw_oeps : VARCHAR(10)?
|
||||
qualifikationen_raw_oeps: VARCHAR(30)? ' Aus RICHT01.dat
|
||||
import_timestamp: TIMESTAMP
|
||||
}
|
||||
|
||||
entity Pferd_ZNS_Staging {
|
||||
+ oeps_satz_nr_pferd : VARCHAR(10) <<PK>>
|
||||
--
|
||||
oeps_kopf_nr : VARCHAR(4)?
|
||||
name : VARCHAR(30)
|
||||
lebensnummer : VARCHAR(9)?
|
||||
geburtsjahr : INTEGER?
|
||||
geschlecht_code : CHAR(1)?
|
||||
farbe : VARCHAR(15)?
|
||||
abstammung_vater_name_roh : VARCHAR(30)?
|
||||
abstammung_info_roh : VARCHAR(15)?
|
||||
oeps_verein_nr_pferd_roh : VARCHAR(4)?
|
||||
verantwortliche_person_name_roh: VARCHAR(75)?
|
||||
fei_pass_nr : VARCHAR(10)?
|
||||
letzte_zahlung_pferdegebuehr_jahr : INTEGER?
|
||||
import_timestamp: TIMESTAMP
|
||||
}
|
||||
}
|
||||
|
||||
' ####################################################################################
|
||||
' ### Domänen Service: Sportler & Pferde Verwaltung (aus ZNS und manuell) ###
|
||||
' ####################################################################################
|
||||
package "Service Sportler & Pferde Verwaltung (Domäne)" {
|
||||
entity DomPerson {
|
||||
+ person_id: UUID <<PK>>
|
||||
--
|
||||
oeps_satz_nr: VARCHAR(6) <<UQ>>?
|
||||
nachname: VARCHAR
|
||||
vorname: VARCHAR
|
||||
geburtsdatum: DATE?
|
||||
geschlecht: GeschlechtE?
|
||||
nationalitaet_code: VARCHAR(3)?
|
||||
fei_id: VARCHAR(10)?
|
||||
telefon: VARCHAR?
|
||||
email: VARCHAR?
|
||||
stamm_verein_id: UUID <<FK>>?
|
||||
ist_gesperrt: BOOLEAN
|
||||
sperr_grund: TEXT?
|
||||
daten_quelle: DatenQuelleE
|
||||
ist_aktiv: BOOLEAN
|
||||
}
|
||||
|
||||
entity DomPferd {
|
||||
+ pferd_id: UUID <<PK>>
|
||||
--
|
||||
oeps_satz_nr_pferd: VARCHAR(10) <<UQ>>?
|
||||
oeps_kopf_nr: VARCHAR(4)?
|
||||
name: VARCHAR
|
||||
lebensnummer: VARCHAR?
|
||||
geburtsjahr: INTEGER?
|
||||
geschlecht_pferd: CHAR(1)?
|
||||
besitzer_person_id: UUID <<FK>>?
|
||||
verantwortlicher_person_id: UUID <<FK>>?
|
||||
heimat_verein_id: UUID <<FK>>?
|
||||
daten_quelle: DatenQuelleE
|
||||
ist_aktiv: BOOLEAN
|
||||
}
|
||||
|
||||
entity DomVerein {
|
||||
+ verein_id: UUID <<PK>>
|
||||
--
|
||||
oeps_vereins_nr: VARCHAR(4) <<UQ>>
|
||||
name: VARCHAR
|
||||
kuerzel: VARCHAR?
|
||||
bundesland_code: VARCHAR(2)?
|
||||
}
|
||||
|
||||
' Zugeordnete Lizenz/Quali einer Person
|
||||
entity DomLizenz {
|
||||
+ lizenz_id: UUID <<PK>>
|
||||
--
|
||||
person_id: UUID <<FK>>
|
||||
lizenz_typ_global_code: VARCHAR(10) <<FK>> ' Verweis auf Service_OeTO_Verwaltung.LizenzTypGlobal
|
||||
gueltig_bis_jahr: INTEGER?
|
||||
ist_aktiv_bezahlt_oeps: BOOLEAN
|
||||
}
|
||||
|
||||
DomPerson "1" -- "0..*" DomLizenz
|
||||
DomLizenz -- "1" Service_OeTO_Verwaltung.LizenzTypGlobal
|
||||
DomPerson "0..1" -- "1" DomVerein : "hat Stammverein"
|
||||
DomPferd "0..1" -- "1" DomPerson : "hat Besitzer"
|
||||
DomPferd "0..1" -- "1" DomPerson : "hat Verantwortlichen"
|
||||
DomPferd "0..1" -- "1" DomVerein : "hat Heimatverein"
|
||||
}
|
||||
|
||||
' #####################################################################
|
||||
' ### Service Veranstaltungsplanung (Events, Turniere, Prüfungen) ###
|
||||
' #####################################################################
|
||||
package "Service Veranstaltungsplanung" {
|
||||
entity VeranstaltungsRahmen {
|
||||
+ veranst_rahmen_id : UUID <<PK>>
|
||||
name : VARCHAR
|
||||
datum_von_gesamt : DATE
|
||||
datum_bis_gesamt : DATE
|
||||
hauptveranstalter_verein_id : UUID <<FK>>? ' Verweis auf DomVerein
|
||||
ort_text: VARCHAR
|
||||
status: EventStatusE
|
||||
}
|
||||
|
||||
entity Turnier_OEPS {
|
||||
+ turnier_id : UUID <<PK>>
|
||||
veranst_rahmen_id : UUID <<FK>>
|
||||
oeps_turnier_nr : VARCHAR(5) <<UQ>>
|
||||
name_zusatz : VARCHAR?
|
||||
datum_von_turnier : DATE
|
||||
datum_bis_turnier : DATE
|
||||
oeto_kategorie_definition_ids: List<UUID> ' FKs zu Service_OeTO_Verwaltung.BewerbsKategorieOetoDefinition
|
||||
regelwerk_typ : RegelwerkTypE
|
||||
hauptsparte: SparteE
|
||||
}
|
||||
|
||||
' Entspricht BewerbBasis
|
||||
entity Pruefung_OEPS {
|
||||
+ pruefung_db_id : UUID <<PK>>
|
||||
turnier_id : UUID <<FK>>
|
||||
oeps_bewerb_nr_anzeige : INTEGER ' Deine nummerInAusschreibung
|
||||
name_text_uebergeordnet : VARCHAR
|
||||
sparte : SparteE
|
||||
oeps_kategorie_definition_id : UUID <<FK>> ' FK zu Service_OeTO_Verwaltung.BewerbsKategorieOetoDefinition
|
||||
' Verweise auf spartenspezifische Details (1:1)
|
||||
' dressur_spezifika_id: UUID <<FK>>?
|
||||
' springen_spezifika_id: UUID <<FK>>?
|
||||
}
|
||||
|
||||
entity Pruefung_Abteilung {
|
||||
+ pruefung_abteilung_db_id : UUID <<PK>>
|
||||
pruefung_db_id : UUID <<FK>> ' FK zu Pruefung_OEPS
|
||||
abteilungs_kennzeichen : VARCHAR ' z.B. "1", "A"
|
||||
bezeichnung_abteilung : VARCHAR?
|
||||
' ... strukturierte Teilungskriterien ...
|
||||
}
|
||||
|
||||
entity Meisterschaft_Cup_Serie {
|
||||
+ mcs_id : UUID <<PK>>
|
||||
name : VARCHAR
|
||||
typ : CupSerieTypE
|
||||
jahr : INTEGER
|
||||
sparte : SparteE
|
||||
}
|
||||
|
||||
entity MCS_Wertungspruefung {
|
||||
mcs_id : UUID <<PK>> <<FK>>
|
||||
pruefung_abteilung_db_id : UUID <<PK>> <<FK>>
|
||||
faktor_fuer_wertung : DECIMAL?
|
||||
}
|
||||
|
||||
entity Platz {
|
||||
+ platz_id: UUID <<PK>>
|
||||
name: VARCHAR
|
||||
typ: PlatzTypE
|
||||
'.. berichtFelder ..
|
||||
}
|
||||
|
||||
entity Turnier_hat_Platz {
|
||||
turnier_id: UUID <<PK>> <<FK>>
|
||||
platz_id: UUID <<PK>> <<FK>>
|
||||
verwendungszweck: VARCHAR?
|
||||
}
|
||||
|
||||
package "Sportfachliche Details Pruefung" {
|
||||
entity DressurPruefungSpezifika {
|
||||
+ pruefung_db_id : UUID <<PK>> <<FK>> ' 1:1 zu Pruefung_OEPS
|
||||
aufgabe_stammdatum_id : UUID <<FK>> ' Zu Service_OeTO_Verwaltung.Sportfachliche_Stammdaten
|
||||
klasse_definition_id : UUID <<FK>>? ' Zu Service_OeTO_Verwaltung.BewerbsKlasseDefinition
|
||||
richtverfahren_stammdatum_id: UUID <<FK>>? ' Zu Service_OeTO_Verwaltung.Sportfachliche_Stammdaten
|
||||
viereck_groesse_code : PruefungsaufgabeViereckE
|
||||
' geplanteRichterPositionen: List<RichterPositionE> ' oder über BewerbFunktionaerZuordnung
|
||||
}
|
||||
entity SpringPruefungSpezifika {
|
||||
+ pruefung_db_id : UUID <<PK>> <<FK>> ' 1:1 zu Pruefung_OEPS
|
||||
klasse_definition_id : UUID <<FK>>?
|
||||
richtverfahren_stammdatum_id: UUID <<FK>>?
|
||||
art_des_stechens : ArtDesStechensE?
|
||||
'.. parcours infos ..
|
||||
}
|
||||
}
|
||||
|
||||
VeranstaltungsRahmen "1" -- "0..*" Turnier_OEPS
|
||||
Turnier_OEPS "1" -- "0..*" Pruefung_OEPS
|
||||
Pruefung_OEPS "1" -- "1..*" Pruefung_Abteilung
|
||||
Pruefung_OEPS "1" o-- "0..1" Sportfachliche_Details_Pruefung.DressurPruefungSpezifika
|
||||
Pruefung_OEPS "1" o-- "0..1" Sportfachliche_Details_Pruefung.SpringenPruefungSpezifika
|
||||
Meisterschaft_Cup_Serie "1" -- "0..*" MCS_Wertungspruefung
|
||||
Pruefung_Abteilung "1" -- "0..*" MCS_Wertungspruefung
|
||||
Turnier_OEPS "1" -- "0..*" Turnier_hat_Platz
|
||||
Platz "1" -- "0..*" Turnier_hat_Platz
|
||||
Sportfachliche_Details_Pruefung.DressurPruefungSpezifika -- Service_OeTO_Verwaltung.Sportfachliche_Stammdaten
|
||||
Sportfachliche_Details_Pruefung.SpringenPruefungSpezifika -- Service_OeTO_Verwaltung.Sportfachliche_Stammdaten
|
||||
Pruefung_OEPS -- Service_OeTO_Verwaltung.BewerbsKategorieOetoDefinition
|
||||
Turnier_OEPS -- Service_OeTO_Verwaltung.BewerbsKategorieOetoDefinition
|
||||
}
|
||||
|
||||
|
||||
' #####################################################################
|
||||
' ### Service Nennungsabwicklung (Nennungen, Startlisten, Ergebnisse) ###
|
||||
' #####################################################################
|
||||
package "Service Nennungsabwicklung" {
|
||||
entity Nennung {
|
||||
+ nennung_id : UUID <<PK>>
|
||||
pruefung_abteilung_db_id : UUID <<FK>>
|
||||
teilnehmer_person_id : UUID <<FK>> ' Verweis auf DomPerson
|
||||
genanntes_pferd_id : UUID <<FK>> ' Verweis auf DomPferd
|
||||
genutzte_lizenz_id: UUID <<FK>>? ' Verweis auf DomLizenz
|
||||
nennungs_zeitpunkt : TIMESTAMP
|
||||
status_nennung : NennungStatusE
|
||||
kopf_nr_pferd_fuer_nennung : VARCHAR(4)?
|
||||
startgeld_bezahlt: BOOLEAN
|
||||
pferdepass_kontrolliert: BOOLEAN
|
||||
}
|
||||
|
||||
entity NennungsTeilnehmerSnapshot {
|
||||
+ snapshot_id: UUID <<PK>>
|
||||
nennung_id: UUID <<FK>>
|
||||
' Gesnapshotete Daten '
|
||||
person_nachname_snapshot: VARCHAR
|
||||
pferd_name_snapshot: VARCHAR
|
||||
}
|
||||
Nennung "1" -- "0..1" NennungsTeilnehmerSnapshot
|
||||
|
||||
entity Startfolge {
|
||||
+ startfolge_id: UUID <<PK>>
|
||||
nennung_id: UUID <<FK>>
|
||||
start_nummer_display: INTEGER
|
||||
start_zeit_geplant: TIMESTAMP?
|
||||
s4_kader_flag: BOOLEAN
|
||||
}
|
||||
Nennung "1" -- "0..1" Startfolge
|
||||
|
||||
entity Ergebnis_Zeile {
|
||||
+ ergebnis_zeile_id : UUID <<PK>>
|
||||
startfolge_id : UUID <<FK>>
|
||||
platz : INTEGER?
|
||||
' Verweise auf spartenspezifische Ergebnisdetails '
|
||||
}
|
||||
Startfolge "1" -- "0..1" Ergebnis_Zeile
|
||||
|
||||
package "Sportfachliche Details Ergebnis" {
|
||||
entity DressurErgebnisSpezifika {
|
||||
+ ergebnis_zeile_id : UUID <<PK>> <<FK>>
|
||||
gesamt_wertnote : DECIMAL(5,3)?
|
||||
gesamt_prozent : DECIMAL(5,2)?
|
||||
}
|
||||
entity SpringenErgebnisSpezifika {
|
||||
+ ergebnis_zeile_id : UUID <<PK>> <<FK>>
|
||||
stilnote_gesamt : DECIMAL(3,1)?
|
||||
}
|
||||
entity SpringenUmlaufErgebnis {
|
||||
+ umlauf_ergebnis_id : UUID <<PK>>
|
||||
springen_ergebnis_spezifika_id : UUID <<FK>>
|
||||
umlauf_oder_stechen_nr : INTEGER
|
||||
fehlerpunkte_hindernis : DECIMAL(4,2)?
|
||||
fehlerpunkte_zeit : DECIMAL(4,2)?
|
||||
zeit_benoetigt_sek : DECIMAL(5,2)?
|
||||
}
|
||||
SpringenErgebnisSpezifika "1" -- "0..*" SpringenUmlaufErgebnis
|
||||
}
|
||||
Ergebnis_Zeile "1" -- "0..1" Sportfachliche_Details_Ergebnis.DressurErgebnisSpezifika
|
||||
Ergebnis_Zeile "1" -- "0..1" Sportfachliche_Details_Ergebnis.SpringenErgebnisSpezifika
|
||||
}
|
||||
|
||||
' #####################################################################
|
||||
' ### Paketübergreifende Beziehungen (Auswahl) ###
|
||||
' #####################################################################
|
||||
Service_Veranstaltungsplanung.VeranstaltungsRahmen -- Service_Sportler_Pferde_Verwaltung.DomVerein : "veranstaltet von"
|
||||
Service_Veranstaltungsplanung.Turnier_OEPS -- Service_Veranstaltungsplanung.VeranstaltungsRahmen
|
||||
Service_Veranstaltungsplanung.Pruefung_OEPS -- Service_Veranstaltungsplanung.Turnier_OEPS
|
||||
Service_Veranstaltungsplanung.Pruefung_Abteilung -- Service_Veranstaltungsplanung.Pruefung_OEPS
|
||||
Service_Veranstaltungsplanung.Sportfachliche_Details_Pruefung.SpringenPruefungSpezifika -- Service_Sportler_Pferde_Verwaltung.DomPerson : "Parcoursdesigner"
|
||||
|
||||
Service_Nennungsabwicklung.Nennung -- Service_Veranstaltungsplanung.Pruefung_Abteilung
|
||||
Service_Nennungsabwicklung.Nennung -- Service_Sportler_Pferde_Verwaltung.DomPerson : "Reiter"
|
||||
Service_Nennungsabwicklung.Nennung -- Service_Sportler_Pferde_Verwaltung.DomPferd : "Pferd"
|
||||
Service_Nennungsabwicklung.Nennung -- Service_Sportler_Pferde_Verwaltung.DomLizenz : "genutzte Lizenz"
|
||||
|
||||
' Beziehungen für Funktionärsplanung (noch konzeptionell)
|
||||
entity FunktionaerEinsatzPlanung {
|
||||
+ einsatz_plan_id: UUID <<PK>>
|
||||
# event_id: UUID <<FK>>
|
||||
# turnier_id: UUID <<FK>>?
|
||||
# pruefung_abteilung_id: UUID <<FK>>?
|
||||
# funktionaer_person_id: UUID <<FK zu DomPerson>>
|
||||
rolle: FunktionaerRolleE
|
||||
position_richter: RichterPositionE?
|
||||
start_zeit: TIMESTAMP
|
||||
ende_zeit: TIMESTAMP
|
||||
}
|
||||
Service_Veranstaltungsplanung.VeranstaltungsRahmen -- "0..*" FunktionaerEinsatzPlanung
|
||||
Service_Sportler_Pferde_Verwaltung.DomPerson -- "0..*" FunktionaerEinsatzPlanung
|
||||
|
||||
@enduml
|
||||
@@ -1,371 +0,0 @@
|
||||
@startuml
|
||||
' Diagramm-Optionen
|
||||
skinparam linetype ortho
|
||||
hide empty members
|
||||
skinparam shadowing false
|
||||
skinparam defaultFontName "Segoe UI"
|
||||
skinparam defaultFontSize 11
|
||||
skinparam roundCorner 10
|
||||
allow_mixing
|
||||
|
||||
' --- Enums (Auswahl, können bei Bedarf erweitert werden) ---
|
||||
enum SparteEnum {
|
||||
DRESSUR
|
||||
SPRINGEN
|
||||
VIELSEITIGKEIT
|
||||
FAHREN
|
||||
VOLTIGIEREN
|
||||
WESTERN
|
||||
DISTANZ
|
||||
ISLAND
|
||||
PFERDESPORT_SPIEL
|
||||
SONDERPRUEFUNG
|
||||
SONSTIGE
|
||||
UNBEKANNT
|
||||
}
|
||||
|
||||
enum RegelwerkTypEnum {
|
||||
OETO
|
||||
FEI
|
||||
SONSTIGE
|
||||
}
|
||||
|
||||
enum PruefungsaufgabeNationEnum {
|
||||
NATIONAL_OEPS
|
||||
FEI
|
||||
SONSTIGE
|
||||
}
|
||||
|
||||
enum PruefungsaufgabeRichtverfahrenModusEnum {
|
||||
GM
|
||||
GT
|
||||
NICHT_SPEZIFIZIERT
|
||||
}
|
||||
|
||||
enum PruefungsaufgabeViereckEnum {
|
||||
VIERECK_20x40
|
||||
VIERECK_20x60
|
||||
ANDERE
|
||||
UNBEKANNT
|
||||
}
|
||||
|
||||
enum ArtDesStechensEnum {
|
||||
KEIN_STECHEN
|
||||
FEHLER_ZEIT_NORMAL
|
||||
FEHLER_ZEIT_AM3
|
||||
SIEGERUNDE_SR1_MIT_UEBERNAHME_GP
|
||||
SIEGERUNDE_SR2_OHNE_UEBERNAHME_GP
|
||||
ZWEI_STECHEN_AM4
|
||||
ZWEI_STECHEN_AM6
|
||||
SONDERREGELUNG_AUSSCHREIBUNG
|
||||
}
|
||||
|
||||
enum FunktionaerRolleEnum {
|
||||
RICHTER
|
||||
PARCOURS_BAUER
|
||||
PARCOURSBAU_ASSISTENT
|
||||
STEWARD
|
||||
TURNIERLEITER
|
||||
TURNIERBEAUFTRAGTER
|
||||
TIERARZT
|
||||
HUFSCHMIED
|
||||
SPRECHER
|
||||
REITERSPRECHER
|
||||
SONSTIGE
|
||||
}
|
||||
|
||||
enum RichterPositionEnum {
|
||||
C
|
||||
E
|
||||
H
|
||||
B
|
||||
M
|
||||
VORSITZ
|
||||
SONSTIGE
|
||||
}
|
||||
|
||||
enum DatenQuelleEnum {
|
||||
OEPS_ZNS
|
||||
MANUELL_NATIONAL
|
||||
MANUELL_INTERNATIONAL
|
||||
SYSTEM_GENERIERTR
|
||||
}
|
||||
|
||||
enum NennungStatusEnum {
|
||||
GEMELDET
|
||||
MANUELL_ERFASST
|
||||
BESTAETIGT
|
||||
NACHGENANNT
|
||||
BEZAHLT
|
||||
STARTBERECHTIGT
|
||||
ABGEMELDET_REITER
|
||||
ABGEMELDET_VERANSTALTER
|
||||
STORNIERT_SYSTEM
|
||||
}
|
||||
|
||||
enum BeginnzeitTypEnum {
|
||||
FIX_UM
|
||||
ANSCHLIESSEND
|
||||
CA_UM
|
||||
NACH_VORHERIGEM_BEWERB_ABTEILUNG
|
||||
}
|
||||
|
||||
enum EventStatusEnum {
|
||||
IN_PLANUNG
|
||||
GENEHMIGT_VERANSTALTER
|
||||
OEFFENTLICH_SICHTBAR
|
||||
AKTIV
|
||||
ABGESCHLOSSEN
|
||||
ABGESAGT
|
||||
}
|
||||
|
||||
enum PlatzTypEnum {
|
||||
AUSTRAGUNG
|
||||
VORBEREITUNG
|
||||
LONGIEREN
|
||||
SONSTIGES
|
||||
} ' Hinzugefügt für die Platz-Entität
|
||||
|
||||
|
||||
' --- Entitäten für verwaltbare Auswahllisten (Lookup Tables / Master Data) ---
|
||||
entity "Pruefungsaufgabe" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
kuerzel: String
|
||||
nameLang: String
|
||||
sparte: SparteEnum
|
||||
nation: PruefungsaufgabeNationEnum
|
||||
richtverfahrenModusDefault: PruefungsaufgabeRichtverfahrenModusEnum?
|
||||
viereckGroesseDefault: PruefungsaufgabeViereckEnum?
|
||||
istAktiv: Boolean
|
||||
}
|
||||
|
||||
entity "Richtverfahren" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
code: String
|
||||
bezeichnung: String
|
||||
sparte: SparteEnum
|
||||
oetoParagraphVerweis: String?
|
||||
istAktiv: Boolean
|
||||
}
|
||||
|
||||
entity "BewerbsKlasseDefinition" as BewerbsKlasseDef {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
kuerzel: String
|
||||
bezeichnung: String
|
||||
sparte: SparteEnum
|
||||
istAktiv: Boolean
|
||||
}
|
||||
|
||||
entity "BewerbsKategorieOetoDefinition" as BewerbsKatOetoDef {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
kuerzel: String
|
||||
bezeichnung: String
|
||||
sparte: SparteEnum
|
||||
istAktiv: Boolean
|
||||
}
|
||||
|
||||
' --- Kern-Entitäten ---
|
||||
entity "Event" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
bezeichnung: String
|
||||
datumVon: LocalDate
|
||||
datumBis: LocalDate
|
||||
veranstalterVereinId: UUID (FK)?
|
||||
}
|
||||
|
||||
entity "Turnier" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
eventId: UUID (FK)
|
||||
oepsTurnierNr: String
|
||||
titel: String
|
||||
sparte: SparteEnum
|
||||
oetoKategorieIds: List<UUID> ' FKs zu BewerbsKatOetoDef
|
||||
regelwerkTyp: RegelwerkTypEnum
|
||||
datumVon: LocalDate
|
||||
datumBis: LocalDate
|
||||
}
|
||||
|
||||
entity "BewerbBasis" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
turnierId: UUID (FK)
|
||||
nummerInAusschreibung: String
|
||||
uebergeordneteBezeichnung: String
|
||||
sparte: SparteEnum
|
||||
klasseId: UUID (FK zu BewerbsKlasseDef.id)?
|
||||
oetoKategorieId: UUID (FK zu BewerbsKatOetoDef.id)
|
||||
dressurDetailsId: UUID (FK, optional)
|
||||
springDetailsId: UUID (FK, optional)
|
||||
}
|
||||
|
||||
entity "DressurBewerbDetails" {
|
||||
+ bewerbBasisId: UUID (PK, FK)
|
||||
--
|
||||
pruefungsaufgabeId: UUID (FK)
|
||||
richtverfahrenId: UUID (FK)
|
||||
viereckGroesse: PruefungsaufgabeViereckEnum
|
||||
}
|
||||
|
||||
entity "SpringBewerbDetails" {
|
||||
+ bewerbBasisId: UUID (PK, FK)
|
||||
--
|
||||
richtverfahrenId: UUID (FK)
|
||||
artDesStechens: ArtDesStechensEnum?
|
||||
parcoursskizzeUrl: String?
|
||||
}
|
||||
|
||||
entity "Abteilung" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
bewerbBasisId: UUID (FK)
|
||||
abteilungsKennzeichen: String
|
||||
bezeichnungOeffentlich: String?
|
||||
}
|
||||
|
||||
entity "Person" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
nachname: String
|
||||
vorname: String
|
||||
oepsSatzNr: String?
|
||||
datenQuelle: DatenQuelleEnum
|
||||
stammVereinId: UUID (FK)?
|
||||
}
|
||||
|
||||
entity "Pferd" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
name: String
|
||||
oepsKopfNr: String?
|
||||
datenQuelle: DatenQuelleEnum
|
||||
besitzerPersonId: UUID (FK)?
|
||||
}
|
||||
|
||||
entity "Verein" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
oepsVereinsNr: String
|
||||
name: String
|
||||
}
|
||||
|
||||
entity "Lizenz" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
personId: UUID (FK)
|
||||
lizenzTypOepsCode: String
|
||||
bezeichnung: String
|
||||
}
|
||||
|
||||
entity "Nennung" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
turnierId: UUID (FK)
|
||||
abteilungId: UUID (FK)
|
||||
personId: UUID (FK)
|
||||
pferdId: UUID (FK)
|
||||
status: NennungStatusEnum
|
||||
}
|
||||
|
||||
entity "Startfolge" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
nennungId: UUID (FK)
|
||||
abteilungId: UUID (FK)
|
||||
startNummer: Int
|
||||
startZeitGeplant: LocalDateTime?
|
||||
pferdepassKontrolliert: Boolean
|
||||
}
|
||||
|
||||
entity "Ergebnis" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
startfolgeId: UUID (FK)
|
||||
platzierung: Int?
|
||||
}
|
||||
|
||||
entity "Platz" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
name: String
|
||||
typ: PlatzTypEnum
|
||||
}
|
||||
|
||||
entity "PlatzZuordnungTurnier" as PlatzZuordnung {
|
||||
turnierId: UUID (FK)
|
||||
platzId: UUID (FK)
|
||||
(PK: turnierId, platzId)
|
||||
}
|
||||
|
||||
entity "Artikel" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
bezeichnung: String
|
||||
standardPreis: BigDecimal?
|
||||
}
|
||||
|
||||
entity "TurnierArtikel" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
turnierId: UUID (FK)
|
||||
artikelId: UUID (FK)
|
||||
preis: BigDecimal
|
||||
}
|
||||
|
||||
entity "FunktionaerEinsatz" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
personId: UUID (FK)
|
||||
eventId: UUID (FK)
|
||||
turnierId: UUID (FK)?
|
||||
abteilungId: UUID (FK)?
|
||||
rolle: FunktionaerRolleEnum
|
||||
positionRichter: RichterPositionEnum?
|
||||
geplanterStart: LocalDateTime
|
||||
geplantesEnde: LocalDateTime
|
||||
}
|
||||
|
||||
' --- Beziehungen ---
|
||||
Event "1" -- "0..*" Turnier
|
||||
Turnier "1" -- "0..*" BewerbBasis
|
||||
BewerbBasis "1" -- "0..1" DressurDetails
|
||||
BewerbBasis "1" -- "0..1" SpringDetails
|
||||
BewerbBasis "1" -- "1..*" Abteilung
|
||||
|
||||
Turnier "1" -- "0..*" Nennung
|
||||
Abteilung "1" -- "0..*" Nennung
|
||||
Person "1" -- "0..*" Nennung
|
||||
Pferd "1" -- "0..*" Nennung
|
||||
Nennung "1" -- "0..1" Startfolge
|
||||
Startfolge "1" -- "0..1" Ergebnis
|
||||
|
||||
Person "1" -- "0..*" Lizenz
|
||||
Verein "1" -- "0..*" Person : Stammverein
|
||||
Person "1" -- "0..*" Pferd : Besitzer
|
||||
|
||||
Turnier "1" -- "0..*" TurnierArtikel
|
||||
Artikel "1" -- "0..*" TurnierArtikel
|
||||
|
||||
Turnier "1" -- "0..*" PlatzZuordnung
|
||||
Platz "1" -- "0..*" PlatzZuordnung
|
||||
|
||||
Event "1" -- "0..*" FunktionaerEinsatz
|
||||
Person "1" -- "0..*" FunktionaerEinsatz
|
||||
Turnier -- FunktionaerEinsatz
|
||||
Abteilung -- FunktionaerEinsatz
|
||||
|
||||
DressurDetails "1" -- "1" Pruefungsaufgabe
|
||||
DressurDetails "1" -- "1" Richtverfahren
|
||||
SpringDetails "1" -- "1" Richtverfahren
|
||||
|
||||
BewerbBasis "1" -- "1" BewerbsKlasseDef
|
||||
BewerbBasis "1" -- "1" BewerbsKatOetoDef
|
||||
|
||||
Turnier "1" -- "0..*" BewerbsKatOetoDef : "verwendet ÖTO Kategorien"
|
||||
|
||||
@enduml
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 344 KiB |
@@ -1,68 +0,0 @@
|
||||
@startuml
|
||||
|
||||
enum KurzbezeichnungTurnierBewerbE {
|
||||
CDN ... Dressur
|
||||
CSN ... Springen
|
||||
CCN ... Vielseitigkeit
|
||||
CAN ... Fahren
|
||||
CVN ... Voltigieren
|
||||
CEN ... Distanzreiten
|
||||
CHNI ... Turniere für Islandpferde
|
||||
CHNV ... Reitervierkampf
|
||||
TREC ... Orientierungsreiten
|
||||
CPEDN ... Pferdesportler mit Behinderung Dressur
|
||||
CPEAN ... Pferdesportler mit Behinderung Fahren
|
||||
CMGN ... Mounted Games
|
||||
CWEN ... Working Equitation
|
||||
}
|
||||
note top of KurzbezeichnungTurnierBewerbE
|
||||
Die Gliederung nach Sparten und die Kurzbezeichnung von Tur-
|
||||
nieren und Bewerben, die nach der ÖTO ausgetragen werden,
|
||||
erfolgt in Übereinstimmung mit der FEI. Die angegebenen
|
||||
Bezeichnungen gelten für nationale Turniere;
|
||||
end note
|
||||
|
||||
enum TeilnehmerkreisesE {
|
||||
J ... JG, JN und/oder YR
|
||||
P ... Ponys
|
||||
N ... Noriker
|
||||
H ... Haflinger
|
||||
L ... Ländliche Reiter auf Warmblutpferden
|
||||
A ... Vollblutaraberbewerbe
|
||||
K ... Kaltblut
|
||||
D ... Damensattel
|
||||
|
||||
}
|
||||
note top of TeilnehmerkreisesE
|
||||
Die Einschränkungen des Teilnehmerkreises für Turniere oder
|
||||
einzelne Bewerbe auf die folgenden Reiter oder Pferde durch
|
||||
die Ausschreibung sind in der Bezeichnung durch Anhängen
|
||||
des angegebenen Buchstaben zu berücksichtigen:
|
||||
end note
|
||||
|
||||
enum TurnierGliederungE {
|
||||
A* ... -A*
|
||||
A ... -A
|
||||
B* ... -B*
|
||||
B ... -B
|
||||
C ... -C
|
||||
C-NEU ... -C-NEU
|
||||
}
|
||||
note top of TurnierGliederungE
|
||||
Zur Gliederung nach den Anforderungen werden nationale Tur-
|
||||
niere in die Kategorien A*, A, B*, B, C und C-NEU eingeteilt. Der
|
||||
Kurzbezeichnung gemäß Abs. 2 und 3 ist zur Kennzeichnung
|
||||
entweder -A*, -A, -B*, -B, -C oder -C-NEU anzuhängen.
|
||||
end note
|
||||
|
||||
entity "Ergebnis" {
|
||||
+ id: UUID (PK)
|
||||
--
|
||||
startfolgeId: UUID (FK)
|
||||
platzierung: Int?
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@enduml
|
||||
|
||||
Reference in New Issue
Block a user