TIL ~ 24.04.05

20240123 TIL

wlsds00_ 2024. 1. 23. 17:30

1. SQL 코드카타

// 1. 이름이 있는 동물의 아이디
SELECT ANIMAL_ID
FROM ANIMAL_INS 
WHERE NAME IS NOT NULL

 

2. 백오피스 프로젝트

2-1. ERD 

오늘 원래 계획은 로그인 기초까지 만들고 강의를 다시 들을 계획이었는데, 튜터님 피드백 이후 ERD를 전체적으로 다시 작성하게 되었다. ERD 역시 SQL과 비슷한 영역이라, 관련 공부가 부족해서 개념을 많이 해맸다.

팀원분들과 튜터님께 많은 도움을 받아 6번쯤 다시 만들고 완성하였다.

 

1 >> 2 : 배치가 복잡해서 핵심 기능을 가운데에 놓고 관계설정 표시가 잘 정리되어 보이게 하려고 했다.

그리고 시간부족상 만들지 않기로 하고 넘어간 백오피스 기능 관련 테이블을 삭제했다.

또 테이블에 색을 넣을 수 있길래 비슷한 기능끼리 알아보기 쉽게 나눠주었다.

cart 기능이 지금 방식으로는 한 주문에 한 메뉴밖에 들어가지지 않는다고 하셔서 order와 payment 를 나누고 물건의 총 합계값을 order에, 명세서 같은 기능은 payment에 넣었다.

 

2 >> 3 : 구조 정리가 잘 된건 좋았는데 프로그램 연결 설정법을 잘 이해하지 못해서 전부 PK로 FK가 들어가버렸다.

그래서 해당 부분을 전부 지웠고, 잘못 들어간 FK 부분도 다시 연결해서 넣어주었다.

API 명세서에 따라 가게 이름을 store로 바꾸고 order 쪽 오타를 수정했다.

또 cart가 굳이 나눌 필요 없는 부분이어서, 다시 order 에 합치고 메뉴를 담게끔 order_menu를 만들었다.

그리고 basket 테이블도 만들었다. 여기도 마찬가지로 order 처럼 중간과정을 추가해주었다.

 

3 >> 4 : 항목 수정이 좀 많았다.

  • like : 데이터 자체가 들어갔느냐만 확인해도 즐겨찾기 기능 적용이 가능해서 식별용으로 넣은 rate를 뺐다. 
  • review : store_id, order_id 를 추가해서 가게정보와 주문정보도 넣어주었다. 
  • order : store_id 를 추가해서 어느 가게의 주문인지도 표시했다.
  • order_menu / store : store 에 있던 quantity 를 order_menu로 옮기고, stock을 status로 변경했다.

4 >> 5 : order 에서 order_menu_id 를 삭제했다. 

이부분을 잘 이해하지 못해서 팀원분이 따로 알려주셨다.

나는 order_menu_id 의 값이 order_menu에 들어간 메뉴목록을 한꺼번에 받아올수있는 역할이라고 이해했는데

사실은 같은 주문이라고 order_menu_id 값이 같은게 아니고 그냥 순서대로 번호를 매기며 값이 들어간다.

즉 메뉴 하나를 넣으면 order_menu_id 는 1이 올라간다. 넣은 메뉴 항목만큼 +1 된다.

사실 이 부분은 그냥 order_menu 에 들어가는 내용을 구분할 뿐이고 잘 쓰이지도 않는다고 한다.

그래서 order_menu_id 는 지워도 되고, 구매목록을 출력하고 싶으면 order로 구매시간, 합계금액, 진행상황을 저장하고 그 저장한 값을 order_id 로 받아와서 order_menu를 출력하면 그게 구매목록이 되는거였다.

그 밖에는 order_total 을 더 알아보기 쉽게 pay 를 붙이고 approval 을 status로 바꾸었다.

 

5 >> 6 : 

  • like : store_like 로 이름 수정
  • store : address 오타 수정
  • basket : cart 로 이름 수정, user_id, store_id 추가
  • basket_menu : cart 로 이름 수정, cart_menu_quantity 추가
  • review / reply : date 를 created_at, updated_at 로 추가 및 수정

 

2-2. MENU CRUD

원래는 회원가입, 로그인 기능을 맡았었는데 ERD로 인해 작업이 지연된것도 있고, 인증관련 공부가 부족해서 다른분 작업분량을 약간 나눠받아 Menu 작업을 하기로 했다. 조금 늦게 시작했기 때문에 세부적인 부분까진 손대지 못했다.

우선 기본기능 구현까지만 완성할 생각이다.