🔎수강신청 시 활용되는 수강 꾸러미를 위한 DBMS를 구현
사용된 데이터는 2022년 2학기 글로벌SW융합전공으로 개설된 과목을 사용했다.
mysql을 사용한 첫 프로젝트라 굉장히 좀 재밌어보였다.
php를 이용해서 웹과 mysql을 연결했다.
위 사진은 시작 화면이다.
여기서 각 버튼을 누를때마다 특정 작업을 수행해야 한다.
📕웹 사이트 주요 기능
📗수강 꾸러미 담기
입력받은 학번과 교과목 코드를 통해서 해당 학번의 수강꾸러미에 과목코드에 해당하는 과목을 수강꾸러미에 담는다.
만약 이미 담은 과목코드를 또 수강 꾸러미에 담을 경우
📗수강 꾸러미에서 제거
입력받은 학번과 교과목 코드를 이용해서 해당 학번의 수강 꾸러미에서 입력받은 과목코드에 해당하는 과목을 수강꾸러미에서 제거하면 된다.
만약 존재하지 않는 과목을 제거하려고 할 경우
📗수강 꾸러미 조회
입력받은 학번에 해당하는 수강 꾸러미를 불러와서 수강과목에 정보와 총학점을 화면에 보여줍니다.
❌제한사항
- 2학기에 개설되지 않은 교과목 신청 불가
- 과목 테이블에 존재하는 과목이어야 함.
- 한 학생에 대해 신청하는 과목이 이미 relation에 존재할 경우 insert 불가
- 수강 테이블에 과목 코드는 고유키여야 함.
- 한 학생에 대해 신청한 교과목들의 총 이수학점은 24학점을 넘을 수 없음.
- 한 학생에 대해 신청한 교과목 중 교양 과목은 최대 3개까지 허용됨.
- 한 학생에 대해 신청한 교과목들은 서로 시간이 겹치면 안 됨.
- 모든 교과목의 수강정원은 2명으로 최대 2명까지 수강이 가능함.
해당 제한사항의 구현은 mysql에 trigger를 이용해서 구현했다.
해당 제한사항을 어길 경우 아래처럼 웹사이트를 구성했다.
sql 파일과 php 파일은 github에 올릴 예정~~~
느낀 점
- php문법이 굉장히 까다로워서 막막했는데, 교수님이 그래도 뼈대를 주셔서 쉽게 할 수 있었다.
- 데이터 넣는 과정은 정말 고통 그 자체였음.
- trigger 구현하는데 진짜 날밤 샌 듯
- 작업하기 전에 DB를 설계하는 것과 정규화를 알맞게 하는 것이 진짜 중요하다.
'Computer Science > DataBase' 카테고리의 다른 글
[Database] - Indexing (0) | 2022.12.18 |
---|---|
[Database]- Disk and Files (0) | 2022.12.18 |
[Database] - 정규화(Normalization) (0) | 2022.12.17 |
[Database] -advancedSql (2) | 2022.10.18 |
[Database] -SQL (0) | 2022.10.18 |