전략 1

공통 사용자와 하위 타입 속성을
하나의 users 테이블에 함께 둡니다.

핵심은 type 구분자입니다. 한 행이 학생인지, 교수인지, 직원인지 먼저 표시하고, 그 타입에 맞는 컬럼만 채워서 조인 없이 바로 읽을 수 있게 합니다.

users
type 이 채울 컬럼 묶음을 결정
공통 컬럼
id 모든 사용자 행의 기본 키
type student / prof / staff 구분자
name 모든 타입이 공유하는 이름
type 값에 따라 선택적으로 채워지는 컬럼

학생

student_id gpa

교수

prof_id department

직원

staff_id position

한 행 예시: type = student 인 경우

id=7, name='Kim'
student_id='S-21', gpa=3.8
prof_id, department = NULL
staff_id, position = NULL