erDiagram direction LR tb_major ||--o{ tb_course : contains tb_major ||--o{ tb_major_lead : maps tb_course ||--o{ tb_course_resource : owns tb_major ||--o{ tb_course_resource : constrains tb_course_resource ||--|| tb_course_resource_best : marks tb_course_resource ||--o{ tb_course_resource_log : logs tb_course_resource ||--o{ tb_cr_user_score : scores tb_major { bigint major_id PK varchar name UK } tb_major_lead { bigint major_id PK bigint user_id PK } tb_course { bigint course_id PK bigint major_id FK varchar name } tb_course_resource { bigint resource_id PK bigint major_id FK bigint course_id FK bigint uploader_id FK varchar resource_type varchar status } tb_course_resource_best { bigint resource_id PK } tb_course_resource_log { bigint log_id PK bigint resource_id FK bigint operator_id FK } tb_cr_user_score { bigint id PK bigint resource_id FK bigint user_id FK int score }