@startuml ' ---- Layout & Stil ---- hide empty methods ' ---- Legende ---- legend right <<RichType>>: Stark typisierte Primitive <<ValueObject>>: Immutable Value Objects <<entity>>: Persistente Entität <<unique>>: Eindeutige Einschränkung auf Spaltenebene <<nn>>: Not null endlegend ' ===================== Packages ===================== package "Shared\n(Value Objects)" as P_Shared #EEF6FF { class PhoneNumber << (R,#FFEECC) RichType >> { +Value: string <<nn>> } class Address << (V,#CCEEFF) ValueObject >> { +Street: string <<nn>> +Zip: string <<nn>> +City: string <<nn>> } class Tag << (V,#CCEEFF) ValueObject >> { +Name: string <<nn>> +Color: string } } package "People" as P_People #FFF5E6 { abstract class Person <<entity>> { +Firstname: string <<nn>> +Lastname: string <<nn>> +PersonType: string <<nn>> } note left of Person::PersonType Discriminator end note class Student <<entity>> { +MatriculationNo: string <<nn>> <<unique>> +StudentProfile : StudentProfile <<nn>> +Address : Address <<nn>> } class Instructor <<entity>> { +EmployeeNo: string <<nn>> <<unique>> } class StudentProfile <<entity>> { +BirthDate: DateOnly <<nn>> +Email: string <<nn>> +Phone: PhoneNumber } ' Vererbungen & interne Beziehungen Student -up-|> Person Instructor -up-|> Person Student "1" -- "1" StudentProfile : "> StudentProfile" } package "Courses" as P_Courses #EAF8EA { class Course <<entity>> { +Title: string <<nn>> +Credits: int <<nn>> +CourseCode: string <<nn>> <<unique>> +Instructor : Instructor <<nn>> +Tags : List<Tag> } class Enrollment <<entity>> { +EnrolledAt: DateTime <<nn>> +Grade: decimal +Student : Student <<nn>> +Course : Course <<nn>> } } Course "0..*" -- "1" Instructor : "> Instructor" Enrollment "0..*" -- "1" Student : "> Student" Enrollment "0..*" -- "1" Course : "> Course" Student -- Address : "> Address" Course -- Tag : "> Tags" @enduml
Decode URL
Submit
amiga
aws-orange
black-knight
bluegray
blueprint
cerulean-outline
cerulean
crt-amber
crt-green
cyborg-outline
cyborg
hacker
lightgray
mars
materia-outline
materia
metal
mimeograph
minty
plain
reddress-darkblue
reddress-darkgreen
reddress-darkorange
reddress-darkred
reddress-lightblue
reddress-lightgreen
reddress-lightorange
reddress-lightred
sandstone
silver
sketchy-outline
sketchy
spacelab
spacelab-white
superhero-outline
superhero
toy
united
vibrant
🎉 Discover the future PlantUML Web Editor! 🚀
PNG
SVG
ASCII Art