data model adapted to split between user and profile #11
@ -9,28 +9,52 @@ skinparam linetype ortho
|
||||
entity "user" as user {
|
||||
*id : number <<generated>>
|
||||
--
|
||||
*nickname : text(25)
|
||||
*created: datetime
|
||||
*updated: datetime
|
||||
*auth_id : text(50)
|
||||
' *created: datetime
|
||||
' *updated: datetime
|
||||
}
|
||||
|
||||
entity user_profile {
|
||||
entity tag {
|
||||
*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)
|
||||
fullname: text(100)
|
||||
volunteerwork: text(4000)
|
||||
freetext: text(4000)
|
||||
*profile_visible: bool
|
||||
visible: bool
|
||||
*created: datetime
|
||||
*updated: datetime
|
||||
}
|
||||
user ||-o{ user_profile : user_has_profile
|
||||
user ||-o{ profile : user_has_profile
|
||||
|
||||
entity user_address {
|
||||
entity token {
|
||||
*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)
|
||||
house_number: text(10)
|
||||
@ -39,52 +63,40 @@ entity user_address {
|
||||
city: text(25)
|
||||
country: text(25)
|
||||
}
|
||||
user ||-o{ user_address : user_has_address
|
||||
profile ||-o{ profile_address : profile_has_address
|
||||
|
||||
entity user_skill {
|
||||
*user_id: id
|
||||
entity profile_skill {
|
||||
*profile_id: id
|
||||
*skill_id: id
|
||||
--
|
||||
level: number
|
||||
*level: number
|
||||
}
|
||||
|
||||
entity user_language {
|
||||
*user_id: id
|
||||
entity profile_language {
|
||||
*profile_id: id
|
||||
*language_id: id
|
||||
--
|
||||
level: number
|
||||
}
|
||||
|
||||
entity skill {
|
||||
entity profile_experience {
|
||||
*id : number <<generated>>
|
||||
--
|
||||
*name: text(25)
|
||||
}
|
||||
|
||||
entity user_experience {
|
||||
*id : number <<generated>>
|
||||
*user_id
|
||||
*profile_id
|
||||
--
|
||||
description
|
||||
start: date
|
||||
end: date
|
||||
}
|
||||
|
||||
entity user_experience_experience {
|
||||
*user_experience_id
|
||||
entity profile_experience_experience {
|
||||
*profile_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
|
||||
profile ||--o{ profile_experience : user_has_experience
|
||||
profile_experience ||--o{ profile_experience_experience : user_experience_is_tagged_with
|
||||
|
||||
profile_experience_experience }o--|| tag
|
||||
|
||||
entity user_search_topic {
|
||||
*user_id
|
||||
@ -92,20 +104,14 @@ entity user_search_topic {
|
||||
--
|
||||
}
|
||||
|
||||
entity user_contact {
|
||||
entity profile_contact {
|
||||
*id : number <<generated>>
|
||||
*user_id
|
||||
*profile_id
|
||||
*contact_type_id
|
||||
--
|
||||
*content: text(200)
|
||||
}
|
||||
|
||||
entity topic {
|
||||
*id : number <<generated>>
|
||||
--
|
||||
*name: text
|
||||
}
|
||||
|
||||
entity language {
|
||||
*id : number <<generated>>
|
||||
--
|
||||
@ -118,16 +124,16 @@ entity contact_type {
|
||||
*name: text(25)
|
||||
}
|
||||
|
||||
user ||--o{ user_skill : user_has_skills
|
||||
user_skill ||--o{ skill
|
||||
profile ||--o{ profile_skill : user_has_skills
|
||||
profile_skill ||--o{ tag
|
||||
|
||||
user ||--o{ user_language : user_speaks_language
|
||||
user_language||--{ language
|
||||
profile ||--o{ profile_language : user_speaks_language
|
||||
profile_language||--{ language
|
||||
|
||||
user ||--o{ user_search_topic
|
||||
user_search_topic ||--o{ topic
|
||||
user_search_topic ||--o{ tag
|
||||
|
||||
user ||-o{ user_contact
|
||||
user_contact ||-o{ contact_type
|
||||
profile ||-o{ profile_contact
|
||||
profile_contact ||-o{ contact_type
|
||||
|
||||
@enduml
|
||||
|
Loading…
Reference in New Issue
Block a user