This page looks best with JavaScript enabled
⚠️

問題のテーブル設計

 ·   ·  ☕ 1 分で読めます
✏️

問題/回答のテーブル設計

question
number (integer)
thesis (text)
commentary (text)
is_correct (boolean)

answer
question_id
user_id
answer_status (enum correct, incorrect, uncertain)
answer_correct (boolean)

regular_practice_exercise_template
title (string)
timelimit_seconds (integer)
question_count (integer) # 1 演習あたりの問題数
first_started_at (datetime)
first_finished_at (datetime)
cycle_count (integer)
cycle_type (enum daily, weekly, monthly) # 演習周期(n 日/週間/月ごと)

regular_practice_exercise
title (string)
timelimit_seconds (integer)
started_at (datetime)
finished_at (datetime)

regular_practice_exercise_question
regular_practice_exercise_id
question_id

user_regular_practice_exercise
user_id
regular_practice_exercise_id
start_at (datetime)

user_regular_practice_exercise_complete
user_regular_practice_exercise_id
correct_answer_count (integer)
elapsed_milliseconds (integer)

user_practice_exercise
regular_practice_exercise_question_id
answer_id

template の title, timelimit_seconds はそのまま使う
template の question_count は question からランダムで選択する
first_started_at から cycle_count cycle_type ごとに演習を行う
期間は first_started_at ~ first_finished_at とする
Enumerator を使って毎日バッチで regular_practice_exercise_question を作成する

Share on

END
END
@aiandrox

 
目次