[빵빵] DB 설계

유보라·2022년 7월 11일
0

빵빵

목록 보기
1/2

안녕하세요! 보라입니다💜

UMC 10주차 트랙 과정에 이어서 프로젝트를 진행하게 되었는데요, 프로젝트 명은 '빵빵'입니다!

또, 감사하게도 소모임에서 진행하는 '썸머코딩' 백엔드(Spring) 멘토링을 받게 되었습니다! (선배님들 바쁜 시간 내주셔서 감사합니다😁)

그래서 이번 여름 방학 동안은 프로젝트 빵빵과 썸머코딩 진행 내용들이 올라올 예정입니다!

1. 프로젝트 빵빵 소개

  • 프로젝트명 : 빵(🍞)빵(0) - 세상에 더 이상 버리는 빵은 없다.
  • 프론트엔드 : IOS
  • 백엔드 : Spring Boot
  • 데이터 베이스 : MySql
  • 문제점 정의
    짧은 단위로 만들고 판매하는 빵 같은 경우 유통기한이 길지 않기 때문에 모두 판매하지 못하고 폐기하는 빵들이 생기게 됩니다. 이렇게 빵을 폐기하는 경우 결국 음식물 쓰레기로써 처리해야 된다는 점과 빵 제작 비용 상실이라는 두 가지 문제점이 존재합니다.
  • 핵심기능
    1. 인기 빵집, 동네 빵집 두 가지 메뉴에 대해 파악
    2. 빵집에서 폐기 전인 세일하는 빵 종류와 수량 파악 후 플랫폼에 전달
    3. 플랫폼에서 소비자들에게 해당 내용 공지 ( 푸시, 메시지 형식 )
  • Flow 차트
  • 와이어 프레임

그리고 저는 이번 프로젝트에서 PM님과 함께 백엔드를 맡게 되었습니다!!
(위 프로젝트 설명은 PM님께서 작성해주신 것을 가져왔습니다!)

2. DB 설계 - 1회차

1) Table 구성 생각해보기

데이터 베이스 설계를 위해, 먼저 어플의 와이어 프레임을 살펴보면서 어떤 Table 안에 어떤 column들이 필요할 지 생각해보았습니다.

  • User
    userIdx
    userName
    userPhone
    userEmail
    (starShop - 즐겨찾기 한 shop!)
    createdAt
    updatedAt
    isShop - shop 권한이 있는 계정은 1
    shopIdx - shop

  • Shop
    shopIdx
    shopName
    shopImgUrl - 빵집 대표 이미지
    isOpen - shop이 열었으면 true
    createdAt
    updatedAt
    shopLocation - 이 부분 잘 모르겠음..
    -> 만약 shopIdx로 breadIdx를 검색했을 때 개수가 0 이면 타임 세일 중 x

  • Bread
    breadIdx
    shopIdx - Shop 테이블에서 참조
    breadName
    breadCount
    breadPrice
    createdAt
    updatedAt

  • BreadUrl (빵 사진을 여러장 올릴 수 있도록, 해당 breadIdx당 첫 번째 Url이 대표 사진이 됨)
    breadIdx - Bread 테이블에서 참조
    breadImgUrl - text

  • Review
    reviewIdx
    userIdx - User 테이블에서 참조
    shopIdx - Shop 테이블에서 참조
    (breadIdx - 특정 빵에 대해 리뷰를 쓸 수 있을 때만)
    reviewContent - text
    createdAt
    updatedAt

  • ReviewUrl
    reviewIdx - Review 테이블에서 참조
    reviewImgUrl - text

2) AQueryTool을 이용해 Table 시각화하기

3) 추가 기능 및 아이디어

  1. 판매량을 어떻게 나타낼 것인가?
    -> 어플에서는 판매되고 있는 빵에 대한 정보만 제공할 뿐, 어플을 통해서는 구매할 수 없다.
    매장에서 카운트 할 수는 있음.

  2. 빵집 별로 타임 세일을 일주일 평균 몇 번하는지 나타내는 지표가 있으면 좋을 것 같다. ex) 이 가게는 일주일 간 타임 세일을 N번 진행했습니다!

  3. 내가 좋아하는 빵집 알림만 받을 수 있도록, 즐겨찾기 기능

  4. 리뷰 추천 기능
    -> 특정 빵에 대한 리뷰만 쓸 수 있는가? -> 여기서 의문, 1번에서 말했듯이 푸쉬 알람만 울릴 것이 아니라 빵을 앱에서 구매할 수 있어야 함 또는 구매 했음을 앱에서 알 수 있어야 함.. 영수증 리뷰 식으로?

  5. 특정 빵을 많이 구매한 사람에게는, 리뷰 작성 시 나타나는 칭호 제공 ex) 크로와상의 제왕, 단팥빵의 여왕...

  6. 빵집 계정 같은 경우, 관리자가 권한을 설정해줌. 따라서 회원가입 때 따로 빵집 인증이 필요 하지 않음

3. 느낀 점

DB 설계를 직접 해보니, 어플의 정확한 기능에 대해 놓친 부분을 깨달을 수 있었습니다. 아마 개발을 계속 해가면서 추가 기능도 보충하고 부족한 부분도 개선해 갈 것 같습니다! DB 설계가 백엔드와 프론트엔드 모두에게 영향을 끼치기도 하고 프로젝트 전반적으로 가장 중요한 작업 중 하나이다보니 시간을 많이 소비하더라도 꼼꼼하게 진행하기로 하였습니다. 그래서 PM님과 제가 각각 설계를 해보고 부족한 점을 보완하기로 하였습니다.

profile
인하대학교 컴퓨터공학과 학생입니다😀

0개의 댓글