학생들 시험점수 관리 하는 데이터베이스랑 어플리케이션을 만드려는데 너무 복잡해 졌어요.
students (학생 테이블)
student_id |
int (auto) |
student_name |
nvarchar |
tests (시험 테이블)
test_id |
int (auto) |
test_name |
nvarchar |
test_date |
datetime |
questions (시험 문제 테이블)
question_id |
int (auto) |
question |
nvarchar |
test_id |
int |
answers (학생 응답 테이블)
answer_id |
int (auto) |
question_id |
int |
student_id |
int |
answer |
nvarchar |
시험점수를 원하는것 보다 학생이 어떤 문제에 어떤 대답을 했는지를 기록하려할때요
학생이 시험을 볼때 응답을 한것이 모두 학생응답 테이블에 들어가게 하는 저런 구조보다 좀 더 좋은게 없을까요?
허접한 쿼리로
select s.student_name, t.test_name, q.question, a.answer from tests t
left join questions q on t.test_id = q.test_id
left join answers a on q.question_id = a.question_id
left join students s on a.student_id = s.student_id
order by s.student_id asc, t.test_id asc, q.question_id asc
요렇게 하면 학생이름, 시험, 문제, 응답 요렇게 나오긴 하는데... 시험 구조 DB 어떻게 해야할까요..
|