주제
MVC 패턴 예제와 JDBC를 이용해 간단한 프로젝트를 진행했다. 본래 나왔던 주제는 금방 생각해낼 수 있는 식당이었다. 그러나 주문을 하고 결제를 하는 데 있어 팀원들의 능력 부족과 시간 부족으로 버거움을 느꼈다. 이때 다른 팀원이 제시한 동호회 주제가 MVC 패턴을 적극적으로 활용할 수 있다고 판단했고, 주제는 '동호회 가입 커뮤니티'가 되었다.
그렇게 총 정리된 카테고리는 다음과 같다.
Main Menu)
- 로그인
- 회원가입
- 종료
Sub Menu)
- 동호회 가입
- 동호회 개설
- 동호회 종류 보기
- 동호회 가입 멤버 보기
- 내 정보 관리
- 동호회 탈퇴
- 종료
DB 테이블 설정
프로젝트를 진행할 때 조건이 있었는데, 그것이 바로 '테이블이 적어도 2개 이상일 것'이었다. 이 점을 고려해 초반에는 동아리를 개설할 때마다 동아리별 새로운 테이블을 만들어주자는 의견을 제시했었다. 그러나 이는 엄청난 패착이었다. 쓸데없는 테이블 늘리기는 DB를 더 어지럽힐 뿐이었다.
여기서 더 설명해보자면 테이블의 수가 많을 때의 단점은 단연코 관리의 어려움이다. 여러 기능을 더하면 더할 수록 연관되는 테이블의 수는 많아지고, 그에 따라 감당할 수 없는 JOIN이 나를 반길 것이다. 이런 식으로 데이터 모델링이 구현되지 않는다면 당연히 처리 속도 또한 느려질 수밖에 없다. 이점을 고려해 우리 팀원이 외래키를 이용한 가입 전용 테이블을 생각해냈다.
-- 회원 테이블
CREATE TABLE membertbl (
m_id VARCHAR(20) NOT NULL PRIMARY KEY,
m_pwd VARCHAR(20) NOT NULL,
m_name VARCHAR(10) NOT NULL,
m_phone VARCHAR(20) NOT NULL,
m_birth DATE NOT NULL
);
-- 동호회 테이블
CREATE TABLE clubtbl (
cb_no INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
cb_name VARCHAR(20) NOT NULL,
cb_content VARCHAR(50) NOT NULL
);
-- 가입 테이블
CREATE TABLE jointbl (
jm_id VARCHAR(20) NOT NULL,
jcb_no INT NOT NULL,
j_date DATE DEFAULT (curdate()),
-- 외래키 설정
FOREIGN KEY (jm_id) REFERENCES membertbl (m_id),
FOREIGN KEY (jcb_no) REFERENCES clubtbl (cb_no)
);
'PROJECT' 카테고리의 다른 글
Project(3)-3. 수정 (0) | 2022.10.14 |
---|---|
Project(3)-2. 회원가입 (0) | 2022.10.14 |
Project(2)-3. 기능 (0) | 2022.09.15 |
Project(2)-2. 화면 (0) | 2022.09.15 |
Project(2)-1. 개인 프로젝트 구성 (0) | 2022.09.14 |