コンテンツにスキップ

仕様書:DB仕様(テーブル構造)

各テーブルの定義を以下に示します。

はみ出した表は横スクロールできます

表がはみ出しているときは、横スクロールをして確認してください。

JSON型について

PostgreSQLには、JSON型が存在します。
この型は、JSONデータを格納するために使用され、JSONデータを関数を使って操作することができます。
比較的コストはかかりますが、柔軟なデータを持たせられるため本システムではSQL内でJSONをパースする機会が少ないデータ(INDEXを張っても、JSON型の操作はコストが高いため)を中心に、JSON型を使用しています。

lecture_master

作成されている問題集のマスタデータ(問題集の設定や登録されている問題のリスト)を管理するテーブルです。
ふろんとえんどのデータを格納するためのlecture_raw_dataカラムが用意されており、フロントエンドはこのデータをそのままパースします。

列名 PK FK カラム名 内容 制約 非NULL デフォルト
lecture_id lecture_id 問題集ID integer
lecture_visible lecture_visible 問題集表示 boolean
lecture_name lecture_name 問題集名 varchar
lecture_owner lecture_owner 問題集作成者 varchar
lecture_description lecture_description 問題集説明 varchar
lecture_date lecture_date 問題集作成日 timestamp
lecture_permit_practice lecture_permit_practice 練習許可 boolean
lecture_permit_exam lecture_permit_exam 模試許可 boolean
lecture_shuffle lecture_shuffle シャッフル boolean
lecture_ichimon lecture_ichimon 一問一答 boolean
lecture_raw_data lecture_raw_data 問題集生データ(フロントエンド利用用) json

problems

問題マスタ表です。システムが利用する、全ての問題の情報(正答など)を格納します。
また、Geminiが回答したデータ(JSON形式)は、gemini_answerカラムに格納されます。

列名 PK FK カラム名 内容 制約 非NULL デフォルト
category category カテゴリ integer
year year integer
month month integer
problem_number problem_number 問題番号 integer
answer answer 正解 integer
problem_ocr problem_ocr 問題文(OCR) varchar
similar similar 類似問題 json
gemini_answer gemini_answer ジェミニ解答 json

reactions

列名 PK FK カラム名 内容 制約 非NULL デフォルト
reaction_id reaction_id リアクションID integer
user_id user_id ユーザID varchar
timestamp timestamp タイムスタンプ timestamp
category category カテゴリ integer
year year integer
month month integer
problem_number problem_number 問題番号 integer
choose choose 選択肢 integer
lecture_id lecture_id 問題集ID integer
attempt attempt アテンプト integer
teacher_name teacher_name 先生名 varchar

user_lectures

列名 PK FK カラム名 内容 制約 非NULL デフォルト
user_id user_id ユーザID varchar
lecture_id lecture_id 問題集ID integer
attempt attempt アテンプト integer
start_timestamp start_timestamp 開始タイムスタンプ timestamp
end_timestamp end_timestamp 終了タイムスタンプ timestamp
total total 合計点 integer
correct correct 正解数 integer
verify_code verify_code 検証コード varchar

users

列名 PK FK カラム名 内容 制約 非NULL デフォルト
user_id user_id ユーザID varchar
hashed_password hashed_password ハッシュ化パスワード varchar
is_teacher is_teacher 先生フラグ boolean
department department 学科 varchar
entrance_year entrance_year 入学年 integer
class_number class_number クラス番号 integer
last_name last_name 苗字 varchar
ai_growth ai_growth AI成長データ json