added entities for users experiences

splitted address into separate table
added types, length and Nullable information to attributes (based on flask data model)
This commit is contained in:
Gulliver 2021-06-11 00:26:30 +02:00
parent e8cdb715f2
commit 78347140ae
1 changed files with 64 additions and 45 deletions

View File

@ -7,98 +7,117 @@ hide circle
skinparam linetype ortho skinparam linetype ortho
entity "user" as user { entity "user" as user {
*user_id : number <<generated>> *id : number <<generated>>
-- --
*nickname : text *nickname : text(25)
*pronouns : text pronouns : text(25)
*address_1_name: text fullname: text(100)
*address_2_additional: text volunteerwork: text(4000)
*address_4_street: text freetext: text(4000)
*adress_house_number: text *created: datetime
*adress_city_code: text *updated: datetime
*adress_country: text
*Ehrenaemter: text
*gravatar_email : text
*Freitext: text
} }
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 { entity user_skill {
user_id: id *user_id: id
skill_id: id *skill_id: id
-- --
level: number level: number
} }
entity user_language { entity user_language {
user_id: id *user_id: id
language_id: id *language_id: id
-- --
level: number level: number
} }
entity skill { entity skill {
skill_id *id : number <<generated>>
-- --
*name: text *name: text(25)
} }
entity user_experience { entity user_experience {
user_id *id : number <<generated>>
*user_id
-- --
description description
start: date start: date
end: 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 { entity user_search_topic {
user_id *user_id
topic_id *topic_id
--
} }
entity user_contact { entity user_contact {
user_id *id : number <<generated>>
contact_type_id *user_id
*contact_type_id
-- --
content_: text *content: text(200)
} }
entity topic { entity topic {
topic_id *id : number <<generated>>
-- --
*name: text *name: text
} }
entity language { entity language {
id *id : number <<generated>>
-- --
name: text *name: text(25)
} }
entity experience { entity contact_type {
id *id : number <<generated>>
--
name: text
}
entity contact_types {
id
-- --
name *name: text(25)
} }
user ||--o{ user_skill : user_has_skills user ||--o{ user_skill : user_has_skills
user_skill ||-o{ skill user_skill ||--o{ skill
user ||--o{ user_experience : user_has_experience user ||--o{ user_language : user_speaks_language
user_experience ||-o{ experience : user_experience_is_tagged_with user_language||--{ language
user ||-o{ user_language : user_speaks_language user ||--o{ user_search_topic
user_language||-{ language user_search_topic ||--o{ topic
user ||-o{ user_search_topic
user_search_topic ||-o{ topic
user ||-o{ user_contact user ||-o{ user_contact
user_contact ||-o{ contact_types user_contact ||-o{ contact_type
@enduml @enduml