본문 바로가기

PROJECT

Project(3)-1. 주제 및 테이블 설정

  주제

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