공부하는 안경딸기

[DB] Database 구성 본문

TanTanBody

[DB] Database 구성

안경딸기 2021. 9. 25. 23:10

 

내 몸 튼튼 Android Application의 Database를 어떤 식으로 구성하는지 계속해서 작성해 나갈 예정입니다.

DB 설계도

(2021.09.25.Sat)

 

설계도 그리기 참 힘들다... 일단 좋은 무료 tool을 찾기가 너무 힘들어서 애썼다.

내가 설계도를 그리는 tool을 찾는 기준은 아래와 같았다.

  1. 내가 흔히 아는 그 ER Diagram을 그리는 방식일 것
  2. CREATE문을 만들어줄 것
  3. Key들을 명확하게 나타내 줄 것
  4. 자동화가 잘 되어있을 것

위의 기준에 맞춰 그나마 찾았던 AQueryTool 은 당장 10월부터 유료로 운영한다고 해서 사용 불가였다. (비싼 돈 내야 그나마 많은 기능 사용 가능이라 학생 신분에서는 도저히...)

ERMaster 사용해서 설계도 그리기

결국 2학년 때 한 번 사용해봤던 ERMaster라는 이클립스 plugin을 사용하기로 결정했다. 사실 IDE를 IntelliJ를 사용해서 가능하면 IntelliJ 안에서 다 해결하려고 했는데 얘는 왜 plugin이 없냐고...ㅂㄷㅂㄷ

 

울며 겨자먹기로 Eclipse를 재설치했다...

결과물

의견 받고 내가 생각 정리해서 만든 DB 설계도는 아래와 같다.

 

Key들과 관계가 명확하게 잘 보인다

FOOD_INFO 테이블은 공공 데이터를 사용할 거라 그냥 간단하게 적어봤다.

그리고 다음 사진은 ERMaster 사용해서 자동으로 만든 쿼리문들이다.

 

주석도 잘 나온다

진짜... 사랑한다... ERMaster...ㅜㅜ

DBeaver에서 쿼리 던져서 만든 결과물

번외

DBeaver에서도 사실 ERD를 그려주기는 한다.

다만, 이게 처음부터 다 만들어주는게 아니라 이미 관계 설정까지 다 끝난 DB에 한해서만 그려준다는 거...

이런식으로... 조금만 더 친절해지면 좋을텐데...

왼쪽 하단에서 Project-General > ER Diagrams를 선택해서 ERD를 원하는 DB를 선택하면 위와 같이 만들어준다.

음식 정보는 공공 데이터 사용

(2021.09.02.Thu)

 

'오픈 API를 사용할까? 아니면 csv 파일을 DB에 저장해서 사용할까?' 고민하다가 일단 csv 파일을 DB에 저장해서 사용하는 방식을 선택하였습니다.

이유는... 음...

계속 API로 받아오면 통신 상으로 너무 자주 호출하고 그러면 딜레이 발생해서(?) 어려워질 것 같아서 DB에 저장하고 사용하는 방식을 선택하였습니다.

 

사용한 파일은 아래 2개와 같습니다. (클릭하면 해당 페이지로 이동됨)

 

농림수산식품교육문화정보원_칼로리 정보

식품의약품안전처_식품영양성분DB 통합 자료집

 

농림수산식품에서 제공한 칼로리 정보는 놀랍게도 한식 위주!

하지만 우리는 한식뿐만 아니라 다양한 식품의 정보가 필요했기 때문에 식품의약품 안전처에서 제공한 데이터를 사용!

(그렇지만 혹시 몰라서 일단 둘 다 테이블을 만들어는 놓았습니다)

 

food_nutrition 테이블을 주로 사용할 예정!

(2021.09.25.Sat)

food_nutrition에서 FOOD_INFO로 테이블 이름을 바꿨다.

Comments