id, content : 내용 emotion_level : 감정 농도 created_at : 생성 시간 updated_at : 수정 시간 favorite : 찜 갯수 comments[] : 댓글 (comment_id 로 관계) comment_id : 댓글 관계 포린키? viewed: 조회수
id, created_at : 생성 시간 updated_at : 수정 시간 year_month : 해당 년도와 월 (예: '2024.04') posts[] : 해당 월에 작성된 문장의 정보 (예: { post_id, created_at, content, emotion_level })
- 각 달의 1일이 잔디밭 내에서 몇번째 행에 있는지 알아냄
- 하나의 행이 차지하는 크기를 계산함
- 몇번째 행인지에 따라 필요한 마이너스 좌표값을 찾아 그만큼 위로 올림
- 선택사항 1. db에서 단어를 추출해 트리거 함수로 넘긴다.
- 선택사항 2. db에 업로드 전에 단어를 추출하고 요청을 하나더 보낸다.
- post 테이블에 데이터가 추가되면 트리거 함수를 실행시킨다.
- content의 내용을 공백 기준으로 분리하여 word_dictionary 테이블에 전부 넣는다.
- word_dictionary에 중복되는 값이 있다면 해당 값의 count값을 1 올린다.
- user_words에도 user_id를 기준으로 하는 데이터의 words 값에 전부 넣는다.
- user_words에 중복되는 값이 있다면 해당 값의 count값을 1 올린다.
word: 단어 count: 사용 횟수
id primary created_at timestamp email text user_name text avatar_url text content text post_id int4 comment_id int4 user_id uuid