data model adapted to split between user and profile #11

Merged
gulliver merged 5 commits from split_user_profile into master 2021-09-09 19:56:57 +02:00
Showing only changes of commit b5e49346ee - Show all commits

View File

@ -9,28 +9,52 @@ skinparam linetype ortho
entity "user" as user { entity "user" as user {
*id : number <<generated>> *id : number <<generated>>
-- --
*nickname : text(25) *auth_id : text(50)
*created: datetime ' *created: datetime
*updated: datetime ' *updated: datetime
} }
entity user_profile { entity tag {
*id : number <<generated>> *id : number <<generated>>
*userid *tag_type_id
--
*name: text
}
entity tag_type {
*id : number <<generated>>
--
*name: text
}
tag_type ||--o{ tag
entity profile {
*id : number <<generated>>
*user_id
-- --
*nick_name : text(25)
pronouns : text(25) pronouns : text(25)
fullname: text(100) fullname: text(100)
volunteerwork: text(4000) volunteerwork: text(4000)
freetext: text(4000) freetext: text(4000)
*profile_visible: bool visible: bool
*created: datetime *created: datetime
*updated: datetime *updated: datetime
} }
user ||-o{ user_profile : user_has_profile user ||-o{ profile : user_has_profile
entity user_address { entity token {
*id : number <<generated>> *id : number <<generated>>
*userid *user_id
--
*token : text(36)
}
user ||-o{ token : user_has_token
entity profile_address {
*id : number <<generated>>
*profile_id
-- --
street: text(25) street: text(25)
house_number: text(10) house_number: text(10)
@ -39,52 +63,40 @@ entity user_address {
city: text(25) city: text(25)
country: text(25) country: text(25)
} }
user ||-o{ user_address : user_has_address profile ||-o{ profile_address : profile_has_address
entity user_skill { entity profile_skill {
*user_id: id *profile_id: id
*skill_id: id *skill_id: id
-- --
level: number *level: number
} }
entity user_language { entity profile_language {
*user_id: id *profile_id: id
*language_id: id *language_id: id
-- --
level: number level: number
} }
entity skill { entity profile_experience {
*id : number <<generated>> *id : number <<generated>>
-- *profile_id
*name: text(25)
}
entity user_experience {
*id : number <<generated>>
*user_id
-- --
description description
start: date start: date
end: date end: date
} }
entity user_experience_experience { entity profile_experience_experience {
*user_experience_id *profile_experience_id
*experience_id *experience_id
} }
user ||--o{ user_experience : user_has_experience profile ||--o{ profile_experience : user_has_experience
user_experience ||--o{ user_experience_experience : user_experience_is_tagged_with profile_experience ||--o{ profile_experience_experience : user_experience_is_tagged_with
entity experience {
*id : number <<generated>>
--
*name: text(25)
}
user_experience_experience }o--|| experience
profile_experience_experience }o--|| tag
entity user_search_topic { entity user_search_topic {
*user_id *user_id
@ -92,20 +104,14 @@ entity user_search_topic {
-- --
} }
entity user_contact { entity profile_contact {
*id : number <<generated>> *id : number <<generated>>
*user_id *profile_id
*contact_type_id *contact_type_id
-- --
*content: text(200) *content: text(200)
} }
entity topic {
*id : number <<generated>>
--
*name: text
}
entity language { entity language {
*id : number <<generated>> *id : number <<generated>>
-- --
@ -118,16 +124,16 @@ entity contact_type {
*name: text(25) *name: text(25)
} }
user ||--o{ user_skill : user_has_skills profile ||--o{ profile_skill : user_has_skills
user_skill ||--o{ skill profile_skill ||--o{ tag
user ||--o{ user_language : user_speaks_language profile ||--o{ profile_language : user_speaks_language
user_language||--{ language profile_language||--{ language
user ||--o{ user_search_topic user ||--o{ user_search_topic
user_search_topic ||--o{ topic user_search_topic ||--o{ tag
user ||-o{ user_contact profile ||-o{ profile_contact
user_contact ||-o{ contact_type profile_contact ||-o{ contact_type
@enduml @enduml