MySQL 간단한 외래키 질문 및 검토

MySQL 간단한 외래키 질문 및 검토

작성일 2023.02.18댓글 1건
    게시물 수정 , 삭제는 로그인 필요

안녕하세요 데이터베이스를 한학기 배우고 처음으로 데이터베이스를 활용해
캡스톤프로젝트로 학교 수학경시대회 등록웹사이트를 만들고 있습니다.

OMR카드를 사용하기에 aabbccdd를 각 학생의 id로 두고 
(aa - Division, bb - School, cc - Team, dd - Student의 각각의 id)
각 4종류의 시험점수를 각각 받을 예정입니다.

목표는 데이터를 받아서 저장하고 
API나 직접 데이터베이스를 통해 빠른시간내에 입상자를 확인하기 위함입니다.

아래는 짜본 데이터베이스의 스크린샷입니다.


여기에서 질문입니다.

- 우선 각각의 테이블에 외래키를 넣으려고 하는데 (School테이블에 DivisionID를 외래키로, Team 테이블에 DivisionID와 SchoolID를 외래키로, Student테이블에 DivisionID와 SchoolID 그리고 TeamID를 외래키로) 쿼리는 어떻게 써야하는지 궁금합니다.
여러 방법으로 시도해 봤는데 에러가 떠서 문제입니다.

mysql> alter table School
    -> add foreign key (DivisionID) references Division(DivisionID);
ERROR 3780 (HY000): Referencing column 'DivisionID' and referenced column 'DivisionID' in foreign key constraint 'School_ibfk_1' are incompatible.
//DivisionID라는 어트리뷰트를 만들고서도 해보고 drop하고도 해봤습니다.
//Modify도 써봤는데 다른이유로 에러가 났었습니다.

- 또 예를들어 1번 디비전의 2번학교 1번팀의 4번학생이면 01020104라는 아이디를 가지게 만들었는데 위의 데이터베이스가 제대로 작동할지 궁금합니다.


Constraint라고해서 제약조건도 궁금한데 혹시 이건 그냥 NOT NULL이나 그런것들만 표현하는 것인가요?


혹시 괜찮으시다면 위의 데이터베이스가 괜찮은지 한번 봐주시면 감사드리겠습니다.

정말 감사드립니다.



profile_image 익명 작성일 -

DB모델링을 하기 위해서는,

엔터티 분류와 관계 및 키 정의, PK와 외래키의 관계, 이상현상, 정규화의 목적과 방법, 반정규화의 필요성...등등등 모델링의 기초 이론들이 많습니다.

이런 가장 기초적인 이론들은 모두 알고 모델링을 해야 올바른 모델링을 할 수 있습니다.

모델링이 잘못된 상태로 억지로 개발하면, 추후 모델링 변경에 의해 시스템을 모두 다시 만들어야 하니까요.

한 학기 동안 얼마나 많은 DB이론들을 공부하셨는지는 모르겠지만,

서점에서 실무 모델링 이론서나 DAP 자격증 가이드 북의 모델링 챕터 등 제대로된 기본 모델링 서적 한두권은 마스터 하신 후 모델링 하셔야 왠만한 문제들이 해결됩니다.

오류로 보아 지금은 기초 중 "PK와 외래키의 관계" 부터 잘못 정의된 상태로, 이 외에도 많은 문제들이 내재되어 있을 걸로 추측됩니다.

이 부분은 샘플 데이터를 입력하고, 원하는 결과를 조회 해 보는 간단한 쿼리들만 작성해보면 스스로 알 수 있습니다.

건승하시길~

oracle , mysql 차이점 질문

... MySQL은 간단한 웹 애플리케이션 개인용 데이터베이스에 적합합니다. 성능: Oracle은 대규모 데이터베이스 고성능 트랜잭션 처리에 적합합니다. MySQL은 빠르고...

MySQL서버설치 관리 질문!

... 설정하는게 간단한것같아서 걱정이 안되는데... 위의... 이제부터 질문좀 할게요.. 1. MySQL서버나 MSSQL서버는... MS SQL을 선택한 것으로 보입니다. 다만, 제로보드는 현재...

mysql, 윈도우 파워쉘, cmd

... sql 가 먼지 부터를 이야기 해요.. sql은 구조적 질의어... ㅋ_ㅋ'' 즉 어떤 정형화된 질문을 하면..해당 질문에..... 간단한 프로그래밍 가능... 이미지 비교 엔진.. https...

mysql 질문입니다

... 아래처럼 sql을 작성하니 제대로 추출이... 좋고 간단한 검색조건으로 사용하기에도 좋습니다) int... 날짜 시간의 조건까지 필요한 복잡한 통계등과 다른...

php와 mysql으로 문서 검색 시스템...

... 내부망에 간단한 자료구축 조회 시스템을... ㅠ_ㅠ 아무튼 질문을 정리하면 한글화일형태의 자료를 다른... 외래키를 이용하여 인적사항의 특정자료와 연결된 별도...