Rails로 만드는 퀴즈 앱의 테이블 디자인

전제


  • 문제를 만들고 응답할 수 있습니다
  • 답변 옵션을 늘릴 수 있습니다

  • 위와 같은 앱을 만들고 싶은 분은 꼭 참고해 보세요.

    완성 시스템





    테이블 역할



    quizzes 테이블



    작성자의 정보와 문제의 큰 틀을 관리한다.

    questions 테이블



    문제의 내용을 저장한다.

    choices 테이블



    선택 정보를 저장합니다.
    또한 correct_answerboolean로 설정하여 응답 정오를 결정합니다.

    challengers 테이블



    응답자 정보를 관리합니다.
    또한 랭킹 기능을 만들기 위해 score 컬럼을 추가.

    해설



    NG 패턴



    퀴즈 앱의 테이블 디자인을 할 때 확실히 생각하는 것은 이런 느낌이 아닐까요?


    question
    choice_1
    choice_2
    correct_answer


    휴가의 날은 무엇을 보내는가?
    집에서 고로 고로
    밖으로 외출
    1

    얼마나 좋아?
    레스토랑
    대중이자카야
    2


    그러나 이것으로 선택을 추가하고 싶을 때는 컬럼을 늘릴 수밖에 없어져 버립니다.

    OK 패턴



    각각에 테이블을 마련하고 questions

    id
    question


    1
    휴가의 날은 무엇을 보내는가?

    2
    얼마나 좋아?



    id
    choice
    correct_answer
    question_id


    1
    집에서 고로 고로
    true
    1

    2
    밖으로 외출
    false
    1

    3
    레스토랑
    false
    2

    4
    대중이자카야
    true
    2

    좋은 웹페이지 즐겨찾기