Skip to content

DB 설계

Daniel Han edited this page Dec 28, 2021 · 5 revisions

DB 설계 노션 페이지

비즈니스 로직 데이터 HIGHLIGHT

시나리오 기반으로 필요한 테이블✅, 데이터 📌으로 highlight

  • 사용자✅ 아이디(name), 비밀번호로 OAUTH 로그인
  • 사용자✅ profileImage📌와 name📌이 우측 상단에 표시
  • 캘린더 뷰 띠지에 각 이벤트✅ title📌 표시, hover 했을 때 title📌, beginAt📌, location📌 표시
  • 이벤트✅ 생성 시 이벤트 양식에 title📌, personInCharge📌, beginAt📌, endAt📌, location📌, category📌, topic📌, details📌 기입, 기입된 데이터 기반 홍보글 생성
  • 등록한✅ 이벤트 정보 확인 시 category📌, title📌, beginAt📌, 소요시간, location📌, personInCharge📌, topic📌, details📌 표시
  • 내가 생성한 이벤트✅ 페이지에서 title📌, beginAt📌, endAt📌, location📌, category📌 표시

ERD

우리42벤트 ERD screenshot

our42vent ERD Cloud

Table 해설

event

FIELD TYPE NULL/NOT NULL COMMENT
id (PK) INT NOT NULL auto increment, 해당 이벤트 고유 ID
creator INT NOT NULL 이벤트 생성 시 이벤트 생성자 고유 id 받아와 저장
title VARCHAR(256) NOT NULL 제목
256 ascii / 64 characters (utf8 max bytes)
personInCharge VARCHAR(64) NULL 발표자/담당자
64 ascii / 16 characters (utf8 max bytes)
인트라 ID 뿐 아니라 한글 이름 + job title 들어올 수 있기 때문에 넉넉하게 64 bytes
beginAt DATETIME NOT NULL 시작 시간
endAt DATETIME NOT NULL 종료 시간
location VARCHAR(256) NOT NULL 장소
256 ascii / 64 characters (utf8 max bytes)
대한민국에서 가장 긴 주소:
부산광역시 강서구 녹산산단382로14번가길 10~29번지(송정동) (78 bytes)
넉넉하게 256 bytes
category ENUM NOT NULL 카테고리
특정 카테고리 enum value로 식별
topic VARCHAR(512) NOT NULL 주제
512 ascii / 128 characters (utf8 max bytes)
details VARCHAR(4096) NULL 상세 설명
4096 ascii / 1024 characters (utf8 max bytes)
꽤 긴 42swin 홍보글 (2078 byte)
createdAt DATETIME NOT NULL 생성 시간
modifiedAt DATETIME NOT NULL 수정 시간
생성 시 생성 시간으로 초기화, 이후 생성자가 수정하면 업데이트

user

FIELD TYPE NULL/NOT NULL COMMENT
id (PK) INT NOT NULL auto increment, 해당 사용자 고유 ID
name VARCHAR(64) NOT NULL 인트라 ID (e.g. ghan, yongjule)
64 ascii / 16 characters (utf8 max bytes)
profileImage VARCHAR(256) NOT NULL 인트라 프로필 사진 링크
256 ascii / 64 characters (utf8 max bytes)
https://cdn.intra.42.fr/users/[이미지_파일명]”
createdAt DATETIME NOT NULL 첫 로그인 시간
updatedAt DATETIME NOT NULL 수정 시간
첫 로그인 시 첫 로그인 시간으로 초기화, user data 변경 시 업데이트

myEvent

FIELD TYPE NULL/NOT NULL COMMENT
id (PK) INT NOT NULL auto increment, myEvent로 등록된 event-user 관계 고유 ID
eventID INT NOT NULL myEvent 등록 시 이벤트 고유 id 받아와 저장
userID INT NOT NULL myEvent 등록 시 사용자 고유 Id 받아와 저장
notification INT NULL 알림
NULL: 알림 없음
15: 15분 전 알림
30: 30분 전 알림
60: 60분 전 알림
Clone this wiki locally