250219 TIL #616 ERD 설계 실습

김춘복·2025년 2월 19일
0

TIL : Today I Learned

목록 보기
618/627

Today I Learned

오늘은 저번 erd 설계 정리한거에 이어서 실제로 인스타를 클론코딩한다고 가정하고 erd를 작성해봤다.


ERD 설계

엔티티 구조

Users (사용자)

  • user_id (PK): BIGINT AUTO_INCREMENT
  • email: VARCHAR(100) UNIQUE NOT NULL
  • username: VARCHAR(50) UNIQUE NOT NULL
  • password: VARCHAR(255) NOT NULL
  • profile_picture: VARCHAR(255)

Posts (게시물)

  • post_id (PK): BIGINT AUTO_INCREMENT
  • user_id (FK): BIGINT
  • image_url: VARCHAR(255) NOT NULL
  • content: TEXT
  • created_at: DATETIME DEFAULT CURRENT_TIMESTAMP

Comments (댓글)

  • comment_id (PK): BIGINT AUTO_INCREMENT
  • post_id (FK): BIGINT
  • user_id (FK): BIGINT
  • content: TEXT
  • created_at: DATETIME DEFAULT CURRENT_TIMESTAMP

Likes (좋아요)

  • like_id (PK): BIGINT AUTO_INCREMENT
  • post_id (FK): BIGINT
  • user_id (FK): BIGINT
  • created_at: DATETIME DEFAULT CURRENT_TIMESTAMP

Tags (태그)

  • tag_id (PK): BIGINT AUTO_INCREMENT
  • name: VARCHAR(50) UNIQUE NOT NULL

Post_Tags (게시물-태그 관계)

  • post_id (FK): BIGINT
  • tag_id (FK): BIGINT

Follows (팔로우)

  • follow_id (PK): BIGINT AUTO_INCREMENT
  • follower_id (FK): BIGINT
  • following_id (FK): BIGINT
  • created_at: DATETIME DEFAULT CURRENT_TIMESTAMP

관계 정의

엔티티 1관계엔티티 2설명
Users1:NPosts한 사용자는 여러 게시물을 작성할 수 있음
Users1:NComments한 사용자는 여러 댓글을 작성할 수 있음
Users1:NLikes한 사용자는 여러 게시물에 좋아요를 할 수 있음
Posts1:NComments한 게시물에 여러 댓글이 달릴 수 있음
Posts1:NLikes한 게시물에 여러 좋아요가 달릴 수 있음
PostsN:MTags한 게시물은 여러 태그를 가질 수 있고, 한 태그는 여러 게시물에 사용될 수 있음
Users (follower)N:MUsers (following)한 사용자는 여러 사용자를 팔로우할 수 있고, 여러 팔로워를 가질 수 있음

주요 제약사항

  • 모든 PK는 자동 증가(Auto Increment) 설정
  • username은 유니크 값
  • created_at은 기본값으로 현재 시간 설정
  • 외래키(FK)는 참조 무결성 유지
profile
Backend Dev / Data Engineer

0개의 댓글

관련 채용 정보