ki-doku/doc/source/architecture/erdmodel.plantuml.txt
Gulliver b5e49346ee profile_visible -> visible
moved skill, experience, search_topic into tag and tag_type entity
moved relations from user to new profile entity
2021-07-01 09:16:14 +02:00

140 lines
2.2 KiB
Plaintext

@startuml
' hide the spot
hide circle
' avoid problems with angled crows feet
skinparam linetype ortho
entity "user" as user {
*id : number <<generated>>
--
*auth_id : text(50)
' *created: datetime
' *updated: datetime
}
entity tag {
*id : number <<generated>>
*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)
visible: bool
*created: datetime
*updated: datetime
}
user ||-o{ profile : user_has_profile
entity token {
*id : number <<generated>>
*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)
additional: text(25)
postcode: text(10)
city: text(25)
country: text(25)
}
profile ||-o{ profile_address : profile_has_address
entity profile_skill {
*profile_id: id
*skill_id: id
--
*level: number
}
entity profile_language {
*profile_id: id
*language_id: id
--
level: number
}
entity profile_experience {
*id : number <<generated>>
*profile_id
--
description
start: date
end: date
}
entity profile_experience_experience {
*profile_experience_id
*experience_id
}
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
*topic_id
--
}
entity profile_contact {
*id : number <<generated>>
*profile_id
*contact_type_id
--
*content: text(200)
}
entity language {
*id : number <<generated>>
--
*name: text(25)
}
entity contact_type {
*id : number <<generated>>
--
*name: text(25)
}
profile ||--o{ profile_skill : user_has_skills
profile_skill ||--o{ tag
profile ||--o{ profile_language : user_speaks_language
profile_language||--{ language
user ||--o{ user_search_topic
user_search_topic ||--o{ tag
profile ||-o{ profile_contact
profile_contact ||-o{ contact_type
@enduml