liner server api제작 - 스키마 설계(1)

unow30·2021년 3월 13일
0

liner

목록 보기
4/8

스키마 설계 - 1차

  • 중요 고려사항인 테마 변경 시 하이라이트 자동 변경에 초점을 두고 설계
  • users와 themes를 M:1 관계로 설정하였다.
  • highlights를 users와 pages의 매핑 테이블로 설정했다.

db 테스트 데이터 입력

users table

  • users1, 2, 3은 각각 themeId를 1, 2, 3을 가지고 있다.
  • 유저가 색상을 선택할 때 front화면에는 현제 users.themesId와 일치하는 color만 나타날 것이다.
  • isPremium은 아직 미구현, true, false에 따라 선택할 컬러수를 늘리거나 다른 폰트로 글씨를 바꾸는 방법을 넣고 싶음(advanced)

highlights table

  • user당 2개의 하이라이트를 가지고 있다. 각각 자신의 themes에 속하는 색상 2개를 하나씩 선택한 상태다.

themes table

  • 하나의 themes에 color가 3개씩 들어있다.
  • users.premium 여부에 따라 테마당 선택하는 색상 수를 늘리거나 글꼴을 변경할 수 있게 하고싶다. (advanced)

pages table

  • pages 하나당 하나의 pageUrl을 가진다.
  • users가 하나의 pageId나 pageUrl을 부른다면, highlights.pageId나 highlights.pageUrl을 가지고있는 highlights rows를 가져올 수 있을 것이다.

문제점

  1. themes.color1, 2, 3의 사용이 데이터 무결성에 문제가 될 수 있다는 것을 알았다. 세 가지의 컬러는 결국 같은 형식의 데이터인데, 다른 칼럼으로 담고 있다는 것이 컬럼 중복으로 보일 수 있다는 것이다.

0개의 댓글