02-08 12:48
Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
관리 메뉴

기록을 합시다.

간단하게 DB 설계 연습을 해보았다. 본문

공부/DB

간단하게 DB 설계 연습을 해보았다.

울집고양이세마리 2023. 4. 7. 20:39

수업 시간에 선생님이 학생과 학생 성적에 관한 테이블을 짜보라고 하셨다. 

그래서 얼른 이렇게 즉석으로 한 번 써보고 다시 봐 보려고 캡쳐해서 저장해놨다. 

그런데 역시 집에 오고 나니 보이는 단점들이 있다.

 

1. curriculum(curriculum_name) teacher(teacher_name) student(student_name)을 CHAR로 설정한 것이 단점이라고 생각했다. 사람이나 과목마다 글자 수가 다를 거라 생각되어 VARCHAR로 두는 게 나을 것이라는 생각이 들었다. 

 

2. CONSTARINT 제약으로 FOREIGN KEY만 두는 게 아니라 ON UPDATE/ON DELETE에 동작을 더 줬으면 좋았을 것 같다.

  • 특히 grade의 참조 칼럼인 student_id에 ON DELETE CASCADE를 줘야했다. 즉, student row가 하나 사라지면(student 한 명이 삭제 되면) 그에 관련된 기록인 성적이 삭제 되어야 했다. 
  • student테이블의 참조 칼럼인 teacher_id에 SET DEFAULT NULL을 줘야할 것 같았다. (이건 긴가민가하다) 왜냐하면 선생님이 다른 학교로 가거나 그만두게 되면 DB에서 삭제해야한다. 그러면 학생도 함께 삭제 하는 게 아니라, 담당 선생님의 데이터만 NULL로 바꾸면 될 것 같았다. 

 

매우 허접해 보이는 테이블 구조들이지만, 직접 작성하고 피드백을 하니 배우는 게 많은 것 같다. 

아, 그리고 Heidi SQL에서는 ERD 구조를 안 보여줘서 불편하다. ㅜㅜ

다들 MySQL Workbench를 쓰는 이유가 있었던 것인가..

 

그래서 chatGPT한테 그려달라 했다. ㅎㅎ

엉성~

 

 

 

Comments