android DB 테이블을 설계하는데 도움이 필요합니다.


안녕하세요. android DB를 이용해서 흔히 게임에서 볼 수 있는 '도전과제' 비슷한 것을 구현해보고자 합니다. DB 테이블을 설계하는데 마음에 들지 않는 부분이 있어서 이렇게 도움을 얻고자 질문을 올립니다.

지금 구현해놓은 DB 테이블은 다음과 같습니다. 예를 들어 1번 '완벽주의자'는 한 문제도 틀리지 않고 문제를 해결했을 때 달성하는 도전 과제이고, 2번 '가장 빠른 기록'은 지금까지 가장 빨리 문제를 푼 기록을 경신할때 달성하는 도전 과제이며 3번 '오늘의 신기록'은 오늘 기록 중에서 가장 빠른 기록을 경신했을 때 달성하는 도전과제 입니다. 물론 도전 과제는 이 외에도 더 많이 존재합니다.

이미지

문제는 DB 테이블이 일관성이 없다는 점입니다. 예를 들면 2번과 3번처럼 시간 기록을 경신하는 도전과제는 value에 기록을 경신했을 때 시간을 저장해 놓는데요. 1번 같은 경우는 시간 기록을 저장할 필요가 없기 때문에 항상 null로 존재합니다. 이렇게 시간과 관련된 과제는 value 항목에 해당 시간을 입력하고 관련이 없는 과제는 value를 null로 놔두는 편이 나은가요?

아니면 시간 기록을 저장해두는 별도의 테이블을 만들어서(1:1 관계인 테이블) 테이블이 둘인 DB로 저장하는 편이 나은가요?

  • 2016년 08월 16일에 작성됨

조회수 158


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close