본문 바로가기

Project

[Project] Lv_3 스케줄 프로젝트 : ERD 재설계

 


 

요구사항 변경

작성자와 일정의 연결

  • 설명
    • ✅ 동명이인의 작성자가 있어 어떤 작성자가 등록한 ‘할 일’인지 구별할 수 없음
    • ✅ 작성자를 식별하기 위해 이름으로만 관리하던 작성자에게 고유 식별자를 부여합니다.
    • ✅ 작성자를 할 일과 분리해서 관리합니다.
    • ✅ 작성자 테이블을 생성하고 일정 테이블에 FK를 생성해 연관관계를 설정해 봅니다.
  • 조건
    • ✅ 작성자는 이름 외에 이메일, 등록일, 수정일 정보를 가지고 있습니다.
      • ✅ 작성자의 정보는 추가로 받을 수 있습니다.(조건만 만족한다면 다른 데이터 추가 가능)
    • ✅ 작성자의 고유 식별자를 통해 일정이 검색이 될 수 있도록 전체 일정 조회 코드 수정.
    • ✅ 작성자의 고유 식별자가 일정 테이블의 외래키가 될 수 있도록 합니다.

 

❗도전 과제부터는 USER Table과 SCHEDULE Table이 분리된다.

 


 

ERD 논리적 설계

  • 기존 SCHEDULE Table 하나로 진행하였는데, 요구사항의 변경에 맞춰 ERD도 재설계 하였습니다.

 

ERD 물리적 설계

CREATE TABLE USER
(
    userId      BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '사용자 ID',
    email       VARCHAR(100)          COMMENT '이메일',
    userName    VARCHAR(100) NOT NULL COMMENT '사용자 명',
    createAt    TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '작성일',
    updateAt    TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정일'
);

CREATE TABLE SCHEDULE
(
    scheduleId  BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '일정 ID',
    userId      BIGINT       NOT NULL COMMENT '사용자 ID',
    userName    VARCHAR(100) NOT NULL COMMENT '사용자 명',
    toDoContent VARCHAR(100) NOT NULL COMMENT '할일',
    createAt    TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '작성일',
    updateAt    TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정일',

    FOREIGN KEY (userId) REFERENCES USER (userId) -- USER 테이블의 userId 참조
)

 

생성한 Table Diagram