@startuml example-er !include ./class-settings.puml hide empty members entity "Grade" as g { * id : varchar(200) -- * created_at : datetime modified_at : datetime deleted_at : datetime * name : varchar(50) * year : varchar(5) * chief_teacher : varchar(200) <> } entity "Class" as cl { * id : varchar(200) -- * created_at : datetime modified_at : datetime deleted_at : datetime * name : varchar(50) * grade_id : varchar <> * type : varchar(3) * chief_teacher : varchar(200) <> } entity "Member" as m { * id : varchar(200) -- * created_at : datetime modified_at : datetime deleted_at : datetime disabled_at : datetime * name : varchar(50) * role : varchar(3) * username : varchar(50) * password : varchar(200) } entity "Teacher" as t { * subject_id : varchar(200) <> } entity "Student" as st entity "Teacher_Detail" as td { * teacher_id : varchar(200) -- sex : varchar(3) birth : date entry_time : date phone : varchar(20) } entity "Student_Detail" as std { * student_id : varchar(200) -- sex : varchar(3) birth : date enrolled_at : date graduated_at : date guardian_name : varchar(50) guardian_phone : varchar(20) } entity "Class_Student" as cls { * class_id : varchar(200) <> * student_id : varchar(200) <> } entity "Subject" as su { * id : varchar(200) -- name : varchar(50) } entity "Work" as w { * id : varchar(200) -- *created_at : datetime modified_at : datetime deleted_at : datetime * published_at : datetime * published_by : varchar(200) <> * subject : varchar(200) <> } entity "Class_Work" as cw { * class_id : varchar(200) <> * work_id : varchar(200) <> } entity "Work_Record" as wr { * work_id : varchar(200) <> * student_id : varchar(200) <> -- * created_at : datetime modified_at : datetime } m <|-- t m <|-- st g --|| t t ||- cl g ||--|{ cl su ||-o{ w t ||--o{ w cl ||--o{ cw w ||-|| cw su ||-o{ t cl ||--o{ cls st ||--o{ cls w ||--o{ wr st ||---o{ wr td ||--t std ||--st @enduml