일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 메소드
- API Gateway
- 하이브리드 데이터 모델
- template/callback
- monitoring
- 화자분리
- fosslight
- metricbeat
- C++
- jwt-java
- DI
- Nice
- pyannote
- 자료구조
- Spring
- prometeus
- docker
- devops
- curl
- 파이썬
- ELK
- supabase
- java
- elastic search
- OpenSource
- konga
- roll over
- kong
- umc
- mybatis
- Today
- Total
youngseo's TECH blog
배달의 민족 간단한 DB 설계 본문
학교 DB 수업 시간에 교수님께서 학교 시스템 DB 설계할 때 드는 돈이 100억이라고 말씀하셔서 매우 놀랐다.
학생과 수업 간 DB를 잠깐만 생각해봐도, 고려해야 할 사항도 많고 실수 없이 깔끔하게 짜야 하는 부분들이 많다.
암튼, 이번에 4, 5주차 UMC 과제가 ERD 설계 / Query문 / QuickDBD 이용 / MySQL 로 DB 설계 이라서, 배달의 민족 DB를 한번 설계해 보기로 했다.
1. DB 설계자 입장에 섰을 때 거쳐야 하는 과정
1. database에 저장되어야 할 정보가 무엇인지 생각한다.
2. 그렇게 해서 어떤 프로젝트가 돌아가게 하는지 고려한다.
3. 개념을 설계한다. --정형적이지 않은 요구사항을 정형화한다. (ex. 제약조건이 무엇인가? 20학번 학생이 들어야 하는 필수 과목은?)
4. E-R 다이어그램을 설계한다.
5. 최종 결과물로 Relational Schema를 작성한다. -Select문, Create문 등으로 DB를 설계한다.
일단 배달의 민족을 만드는 사람의 입장에 서서, 어떤 정보들을 반영해야 하는지 생각해보자. 배달의 민족이 생기기 전에 우리는 전화로 이런 로직을 통해 배달을 주문했을 것이다. 이곳에서 참조.
2. 이를 통해 간단히 배달의 민족 DB를 구상해보았다. (연습용)
TROUBLE SHOOTING 과정에 대해 적어보려 한다.
1. 각 변수명을 헷갈리지 않게 설정하는 것. Review를 달 때 회원이 다는 Review도 있고, 사장이 다는 Review도 존재한다. 각 명칭을 어떻게 구별할 것인지를 잘 설정해야 했다.
2. 관계 종류에 따라 1:1/1:M/N:M 을 잘 설정한다. 이 때 아래와 같은 기호를 사용할 수 있는데, 위 내용에는 포함시키지 못했다. 방법을 잘 모르겠다...무료버전이라 표시가 안되는 것 같기도 하고, 구글링 해서 딱히 정보가 나오지 않는다.
3. AWS RDS 와 DataGrip을 통해 SQL문 활용해보기
너무나 간단한 sql문이다.. 이렇게 table들을 여러개 만들고 DummyData를 만든 후 sql문으로 데이터를 확인해보았다.
'BackEnd' 카테고리의 다른 글
[후기] 객체지향의 사실과 오해 (4) | 2023.08.04 |
---|---|
[MYSQL] MySQL - Advanced Class 수학 관련 함수 (0) | 2023.02.28 |
[MYSQL] MySQL - Advanced Class 문자열 (0) | 2023.02.27 |
[PS] 프로그래머스 SQL 고득점 Kit 정리 (5) | 2023.02.22 |
[ERD|API] ERD 및 API 설계 (1) | 2023.01.06 |