コンテンツにスキップ

仕様書: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 ○