
팀 프로젝트에 백엔드로 중간 합류를 하게 됐다. DB 설계부터 다시 들어가기 시작했는데 현재 가장 걸리는 데이터는 여행 스타일이다.
팀에서 계획한 여행 스타일의 경우, 유저가 회원가입 할 때 선택할 수 있게 하는 정보로 유저 고유 데이터로 들어가게 만들고자 했다. 그리고 유저가 원할 때 언제든 수정할 수 있게끔.
그런데 막상 데이터베이스에 어떻게 저장할 지 고민해보자니 마땅한 게 생각이 잘 안난다.
- ENUM으로 저장하기
- 01101꼴 정수형으로 받아 Bitwise로 구현하기
생각 났던 방법들은 대강 이정도인데.. 비슷한 고민을 하는 다른 사람들의 글을 여기저기 찾아보니 Bitwise를 추천하는 답변들이 몇 개 있었다.
https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_db&wr_id=161017&page=743
위 방법에 대해서는 팀원들과 의논해봤는데 직관적이지 못한 데이터가 될 것 같다는 의견으로 모였다. 나도 그렇게 생각했다. 그래서 차라리 여행 스타일에 대해서 column을 USER_ID와 STYLE_FLAG로 빼내서 테이블을 따로 생성하면 어떨까 싶어졌다.
여행 스타일에 대해서는 아래처럼 나누기로 했다.
양자택일 방식이므로 5개의 column을 만들어 boolean으로 T/F로서 관리하기로 했다. 그렇게 생성된 테이블 스키마!
일단 이렇게 만들어놨는데 변수명도 직관적으로 짓기 참 어렵다..
그리고 하나 더 고민되는게 있었는데, 여행 스타일 테이블에 대해 고유 id를 만들 필요가 있을까? 라는 생각이 있었다. 어차피 여행 스타일은 유저와 1:1 관계를 갖게 되니까 중간 테이블이 필요하진 않을 것 같아 식별관계로 두었다. DB 설계도 몇 번 안해본지라 ERD 식별관계에 대해서도 좀 더 공부하고 적용할 필요가 있어보인다.