78347140ae
splitted address into separate table added types, length and Nullable information to attributes (based on flask data model)
124 lines
1.8 KiB
Plaintext
124 lines
1.8 KiB
Plaintext
@startuml
|
|
|
|
' hide the spot
|
|
hide circle
|
|
|
|
' avoid problems with angled crows feet
|
|
skinparam linetype ortho
|
|
|
|
entity "user" as user {
|
|
*id : number <<generated>>
|
|
--
|
|
*nickname : text(25)
|
|
pronouns : text(25)
|
|
fullname: text(100)
|
|
volunteerwork: text(4000)
|
|
freetext: text(4000)
|
|
*created: datetime
|
|
*updated: datetime
|
|
}
|
|
|
|
entity user_address {
|
|
*id : number <<generated>>
|
|
*userid
|
|
--
|
|
street: text(25)
|
|
house_number: text(10)
|
|
additional: text(25)
|
|
postcode: text(10)
|
|
city: text(25)
|
|
country: text(25)
|
|
}
|
|
user ||-o{ user_address : user_has_address
|
|
|
|
entity user_skill {
|
|
*user_id: id
|
|
*skill_id: id
|
|
--
|
|
level: number
|
|
}
|
|
|
|
entity user_language {
|
|
*user_id: id
|
|
*language_id: id
|
|
--
|
|
level: number
|
|
}
|
|
|
|
entity skill {
|
|
*id : number <<generated>>
|
|
--
|
|
*name: text(25)
|
|
}
|
|
|
|
entity user_experience {
|
|
*id : number <<generated>>
|
|
*user_id
|
|
--
|
|
description
|
|
start: date
|
|
end: date
|
|
}
|
|
|
|
entity user_experience_experience {
|
|
*user_experience_id
|
|
*experience_id
|
|
}
|
|
|
|
user ||--o{ user_experience : user_has_experience
|
|
user_experience ||--o{ user_experience_experience : user_experience_is_tagged_with
|
|
|
|
entity experience {
|
|
*id : number <<generated>>
|
|
--
|
|
*name: text(25)
|
|
}
|
|
user_experience_experience }o--|| experience
|
|
|
|
|
|
entity user_search_topic {
|
|
*user_id
|
|
*topic_id
|
|
--
|
|
}
|
|
|
|
entity user_contact {
|
|
*id : number <<generated>>
|
|
*user_id
|
|
*contact_type_id
|
|
--
|
|
*content: text(200)
|
|
}
|
|
|
|
entity topic {
|
|
*id : number <<generated>>
|
|
--
|
|
*name: text
|
|
}
|
|
|
|
entity language {
|
|
*id : number <<generated>>
|
|
--
|
|
*name: text(25)
|
|
}
|
|
|
|
entity contact_type {
|
|
*id : number <<generated>>
|
|
--
|
|
*name: text(25)
|
|
}
|
|
|
|
user ||--o{ user_skill : user_has_skills
|
|
user_skill ||--o{ skill
|
|
|
|
user ||--o{ user_language : user_speaks_language
|
|
user_language||--{ language
|
|
|
|
user ||--o{ user_search_topic
|
|
user_search_topic ||--o{ topic
|
|
|
|
user ||-o{ user_contact
|
|
user_contact ||-o{ contact_type
|
|
|
|
@enduml
|