📝Day98(72)일차 WE_MOTIVATION_DIARY

김민재·2021년 10월 28일
0

빡코딩 다이어리

목록 보기
86/87
post-thumbnail

- 프로젝트 진행현황

  • 모델링 리뷰 반영 후 V0완성

- 모르는 점

  • 모델링을 진행하면서 어떻게 데이터를 뽑아 쓸 건지 역시 고려하면서 설계를 할 줄 알아야한다는 사실

- 배운점

피드백 내용

    1. 모델링 컨벤션 준수하기
      => postgresql DB 컨벤션을 지켜서 수정이 필요하다.
      => postgresql DB 컨벤션? 1> 테이블 이름은 소문자 복수형, 대문자 X, 2> 컬럼명은 대문자 X '_' 로 연결 3> 외래키는 단수로 쓰기
  1. 정규화에 대한 개념

정규화의 기준은 재사용이 아니다.
타입으로 분리되는 것들은 정규화 과정을 거쳐야한다.

EX> 고용 형태 - 정규직, 인턴, 파트타임 등 한 번밖에 데이터가 쓰이지 않더라도 텍스트로 기입할만한 데이터가 아니라면 전면 정규화 과정을 거치는게 맞다.

  1. 포스트의 좋아요, 댓글의 좋아요 상태는 중간 테이블 자체로 관리가 가능하다.
    => post_likes , comment_like에 is_liked 같은 컬럼은 필요없다.
    EX> 다대다의 중간 테이블인 post_likes에 컬럼으로 user_id, post_id가 들어가기 때문에 1 - 2, 1 -3 1번 유저가 2번, 3번 글에 좋아요를 했음을 두 개의 컬름으로 식별이 가능하다.

3.댓글과 대댓글을 구분하게 위한 자기 참조 1:N관계

댓글과 대댓글을 구분하기 위해 자기 자신을 참조하는 컬럼을 만들면 된다.
하나의 댓글은 0개 N개 이상의 대댓글을 가질 수 있다. 1:N 관계

EX> 댓글 commnets 테이블에 컬럼으로 reference_id(nullable)를 넣고
메인 댓글은 null 값을 대댓글은 참조 id를 넣어주면 2번 메인 댓글에 대한 대댓글, 3번 메인 댓글에 대한 대댓글을 구분할 수 있다.

  1. post_like에 좋아요 스타일의 갯수는 총 6개로 각 스타일 마다 좋아요 갯수를 카운트 하기 위한 정규화 테이블이 필요하다

post_lieks 테이블에 컬럼으로
user_id/post_id/style(6개의 좋아요 스타일)

post_style을 정규화 테이블로
Id style. -(1:1 관계)- post_like
1 좋아요 1번유저(user_id) - 1번 글(post_id) - post_style_id(1번)
2 너무좋아요
3 넘넘 좋아요
4 실망이에요

  1. 한 명의 유저는 하나의 글마다 하나의 좋아요만 할 수 있다.

유니크값을 통해 유저 당 포스트에 하나의 좋아요만 할 수 있도록 설정하기
즉, 중복되면 안되는 컬럼 조합을 PRIMARY KEY 혹은 UNIQUE INDEX로 설정한다.
ALTER TABLE BOARD_LIKE ADD UNIQUE INDEX (BOARD_IDX, USER_IDX)

  1. 유저 이미지와 포스트 이미지에 대한 entity 관계 재 설정하기
    성질이 다른 테이블은 분리하는 것이 기본

  2. ENUM 테이블에 대해서

  • 데이터 타입 enum은 컬럼을 정의할 때 열거된 값들만 입력이 가능해진다.

- 잘한 점과 개선할 점

  • 뭘 했는지 기록해야 남는 다는 걸 기억했다는 것
  • 텐션을 최대치로 끌어올리자아~

- 목표와 마감기한: 2021-10-28

  • 데이터 넣고 명세서 job api 명세서 뽑아보기
profile
자기 신뢰의 힘을 믿고 실천하는 개발자가 되고자합니다.

1개의 댓글

comment-user-thumbnail
2021년 11월 8일

오타가 있네요 시간은 나를 기다리주주않는다! 꺄륵

답글 달기