04 データベース仕様
完全な DDL は schema.sql を参照すること。
4.1 共通カラム
全テーブルに以下のカラムが存在する。
| カラム名 |
型 |
説明 |
*_id |
TEXT |
プライマリキー(UUID) |
created_at |
TEXT |
レコード作成日時(ISO8601) |
updated_at |
TEXT |
レコード更新日時(ISO8601) |
source |
TEXT |
データ出典(02_infrastructure.md 2.6 参照) |
history_ref |
TEXT |
履歴関連付け ID |
ソフトデリートを行うテーブルには追加で以下が存在する。
| カラム名 |
型 |
説明 |
deleted_at |
TEXT |
論理削除日時(NULL = 有効) |
deleted_by |
TEXT FK→members |
削除実行者 |
4.2 作業ステータス一覧
| 値 |
説明 |
todo |
未着工 |
in_progress |
作業中 |
blocked |
停止中 |
pending |
保留 |
waiting |
待機(依存関係待ち) |
review |
レビュー待ち |
done |
完了 |
cancelled |
キャンセル |
4.3 通知タイプ一覧
| 値 |
説明 |
delay_pre |
期限数日前〜当日の事前通知(作業単位) |
delay_progress |
期限当日の残タスク通知(作業単位) |
delay_over |
遅延発生通知・期限超過後毎日(作業単位) |
session_remind |
活動前リマインド |
attendance_remind |
出欠未回答リマインド |
procedure_done |
手順完了報告 |
4.4 出席ステータス一覧
| 値 |
説明 |
venue |
会場出席 |
online |
オンライン出席 |
absent |
欠席 |
unknown |
未回答 |
4.5 テーブル一覧
| # |
テーブル名 |
区分 |
説明 |
| 1 |
team_roles |
メンバー系 |
チーム役割マスタ |
| 2 |
members |
メンバー系 |
メンバー |
| 3 |
member_team_roles |
メンバー系 |
メンバー×チーム役割 |
| 4 |
member_roles |
メンバー系 |
メンバーシステムロール(admin / sub_admin / member) |
| 5 |
member_discord_accounts |
メンバー系 |
Discord アカウント(認証情報統合) |
| 6 |
member_passkeys |
メンバー系 |
パスキー |
| 7 |
member_sessions |
メンバー系 |
セッション |
| 8 |
member_devices |
メンバー系 |
デバイスフィンガープリント |
| 9 |
member_emergency_keys |
メンバー系 |
緊急ログイン用一時キー |
| 10 |
member_login_notification_settings |
メンバー系 |
ログイン通知設定(Discord ID 単位) |
| 11 |
member_login_history |
メンバー系 |
ログイン履歴 |
| 12 |
permanent_delete_logs |
メンバー系 |
完全削除ログ |
| 13 |
venues |
活動系 |
会場マスタ |
| 14 |
activity_sessions |
活動系 |
活動セッション |
| 15 |
attendance_plans |
活動系 |
出欠予定 |
| 16 |
attendance_records |
活動系 |
出席実績 |
| 17 |
attendance_notes |
活動系 |
出欠注釈 |
| 18 |
attendance_reminder_patterns |
活動系 |
出欠催促タイムパターン |
| 19 |
attendance_reminder_timings |
活動系 |
催促パターン各タイミング |
| 20 |
survey_templates |
アンケート系 |
アンケートテンプレート |
| 21 |
survey_template_items |
アンケート系 |
テンプレート選択肢 |
| 22 |
surveys |
アンケート系 |
アンケート(公開済み) |
| 23 |
survey_items |
アンケート系 |
アンケート選択肢 |
| 24 |
survey_responses |
アンケート系 |
アンケート回答 |
| 25 |
task_roles |
作業系 |
作業役割マスタ |
| 26 |
tasks |
作業系 |
作業 |
| 27 |
task_assignments |
作業系 |
作業担当者 |
| 28 |
task_dependency_groups |
作業系 |
作業依存グループ |
| 29 |
task_dependencies |
作業系 |
作業依存関係 |
| 30 |
task_progress_history |
作業系 |
作業進捗履歴 |
| 31 |
task_memos |
作業系 |
作業メモ |
| 32 |
procedure_templates |
手順系 |
手順テンプレート |
| 33 |
procedure_result_definitions |
手順系 |
手順結果定義 |
| 34 |
procedure_template_steps |
手順系 |
手順テンプレートステップ |
| 35 |
procedure_step_transitions |
手順系 |
手順ステップ遷移 |
| 36 |
procedure_instances |
手順系 |
手順実績 |
| 37 |
procedure_instance_steps |
手順系 |
手順実績ステップ |
| 38 |
session_task_records |
活動×作業 |
活動×作業記録 |
| 39 |
notification_rules |
通知系 |
通知ルール |
| 40 |
notification_timings |
通知系 |
通知タイミング |
| 41 |
urls |
共通 |
URL 管理 |
4.6 テーブル定義
メンバー系
team_roles チーム役割マスタ
| カラム名 |
型 |
制約 |
説明 |
team_role_id |
TEXT |
PK |
役割 ID(UUID) |
name |
TEXT |
NOT NULL |
役割名 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
初期データ:キャプテン / プロジェクトマネージャー / 安全管理 / PR 担当 / 操縦手
members メンバー
| カラム名 |
型 |
制約 |
説明 |
member_id |
TEXT |
PK |
メンバー ID(UUID) |
name |
TEXT |
NOT NULL |
氏名 |
discord_id |
TEXT |
NOT NULL UNIQUE |
Discord ユーザー ID(代表) |
is_active |
INTEGER |
NOT NULL DEFAULT 1 |
在籍フラグ(1=在籍 0=脱退) |
joined_at |
TEXT |
NOT NULL |
加入日 |
left_at |
TEXT |
|
脱退日(NULL なら在籍中) |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
member_team_roles メンバー×チーム役割
| カラム名 |
型 |
制約 |
説明 |
member_team_role_id |
TEXT |
PK |
ID(UUID) |
member_id |
TEXT |
NOT NULL FK→members |
メンバー ID |
team_role_id |
TEXT |
NOT NULL FK→team_roles |
役割 ID |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
member_roles メンバーシステムロール
システム内の権限ロール(admin / sub_admin / member)を管理する。
| カラム名 |
型 |
制約 |
説明 |
member_role_id |
TEXT |
PK |
ID(UUID) |
member_id |
TEXT |
NOT NULL FK→members |
メンバー ID |
role |
TEXT |
NOT NULL |
admin / sub_admin / member |
granted_by |
TEXT |
FK→members |
付与者 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
member_discord_accounts Discord アカウント
member_auth を廃止し、Discord アカウント単位で認証情報を管理する。1 人が複数アカウントを持てる。
| カラム名 |
型 |
制約 |
説明 |
discord_account_id |
TEXT |
PK |
ID(UUID) |
member_id |
TEXT |
NOT NULL FK→members |
メンバー ID |
discord_id |
TEXT |
NOT NULL UNIQUE |
Discord ユーザー ID |
username |
TEXT |
NOT NULL |
Discord ユーザー名 |
email |
TEXT |
NOT NULL UNIQUE |
Discord メールアドレス兼ログイン ID |
totp_secret |
TEXT |
|
2FA シークレット(TOTP) |
discord_access_token |
TEXT |
|
Discord OAuth アクセストークン |
discord_refresh_token |
TEXT |
|
Discord OAuth リフレッシュトークン |
discord_token_expires_at |
TEXT |
|
トークン有効期限 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
member_passkeys パスキー
複数端末のパスキーを登録できる。FK は member_discord_accounts に変更。
| カラム名 |
型 |
制約 |
説明 |
passkey_id |
TEXT |
PK |
ID(UUID) |
discord_account_id |
TEXT |
NOT NULL FK→member_discord_accounts |
Discord アカウント ID |
credential_id |
TEXT |
NOT NULL UNIQUE |
パスキー識別子 |
public_key |
TEXT |
NOT NULL |
公開鍵データ |
device_name |
TEXT |
|
デバイス名(iPhone・PC など) |
registered_at |
TEXT |
NOT NULL |
登録日時 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
member_sessions セッション
複数端末の同時ログインを許可する。FK は member_discord_accounts に変更。
| カラム名 |
型 |
制約 |
説明 |
session_id |
TEXT |
PK |
ID(UUID) |
discord_account_id |
TEXT |
NOT NULL FK→member_discord_accounts |
Discord アカウント ID |
session_token |
TEXT |
NOT NULL UNIQUE |
セッショントークン |
device_info |
TEXT |
|
デバイス情報 |
last_active_at |
TEXT |
NOT NULL |
最終アクティブ日時 |
expires_at |
TEXT |
NOT NULL |
有効期限 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
member_devices デバイスフィンガープリント
FingerprintJS による端末識別情報を管理する。
| カラム名 |
型 |
制約 |
説明 |
device_id |
TEXT |
PK |
ID(UUID) |
discord_account_id |
TEXT |
NOT NULL FK→member_discord_accounts |
Discord アカウント ID |
fingerprint_data |
TEXT |
NOT NULL |
フィンガープリントデータ |
device_name |
TEXT |
|
デバイス名 |
last_seen_at |
TEXT |
NOT NULL |
最終確認日時 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
member_emergency_keys 緊急ログイン用一時キー
| カラム名 |
型 |
制約 |
説明 |
key_id |
TEXT |
PK |
ID(UUID) |
member_id |
TEXT |
NOT NULL FK→members |
メンバー ID |
issued_by |
TEXT |
FK→members |
発行者(管理者) |
key_hash |
TEXT |
|
キーのハッシュ(発行後セット) |
status |
TEXT |
NOT NULL DEFAULT 'pending' |
pending / issued / used / expired |
request_at |
TEXT |
NOT NULL |
申請日時 |
expires_at |
TEXT |
|
有効期限(発行から 1 時間) |
used_at |
TEXT |
|
使用日時 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
member_login_notification_settings ログイン通知設定
Discord アカウント ID 単位で通知条件を設定する。
| カラム名 |
型 |
制約 |
説明 |
setting_id |
TEXT |
PK |
ID(UUID) |
discord_account_id |
TEXT |
NOT NULL UNIQUE FK→member_discord_accounts |
Discord アカウント ID |
notify_on_session |
INTEGER |
NOT NULL DEFAULT 0 |
セッション継続時通知 |
notify_on_oauth |
INTEGER |
NOT NULL DEFAULT 1 |
OAuth ログイン時通知 |
notify_on_new_device |
INTEGER |
NOT NULL DEFAULT 1 |
新規端末時通知 |
notify_on_passkey |
INTEGER |
NOT NULL DEFAULT 1 |
パスキー使用時通知 |
notify_on_totp |
INTEGER |
NOT NULL DEFAULT 1 |
TOTP 使用時通知 |
notify_on_emergency_key |
INTEGER |
NOT NULL DEFAULT 1 |
緊急キー使用時通知 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
member_login_history ログイン履歴
| カラム名 |
型 |
制約 |
説明 |
login_id |
TEXT |
PK |
ID(UUID) |
discord_account_id |
TEXT |
NOT NULL FK→member_discord_accounts |
Discord アカウント ID |
login_method |
TEXT |
NOT NULL |
session / oauth / passkey / totp / emergency_key |
os |
TEXT |
|
OS 名 |
browser |
TEXT |
|
ブラウザ名 |
device_id |
TEXT |
FK→member_devices |
デバイス ID |
is_new_device |
INTEGER |
NOT NULL DEFAULT 0 |
新規端末フラグ |
logged_in_at |
TEXT |
NOT NULL |
ログイン日時 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
permanent_delete_logs 完全削除ログ
完全削除実行時に削除前のスナップショットを保存する。
| カラム名 |
型 |
制約 |
説明 |
log_id |
TEXT |
PK |
ID(UUID) |
deleted_by |
TEXT |
NOT NULL FK→members |
削除実行者 |
target_table |
TEXT |
NOT NULL |
対象テーブル名 |
target_id |
TEXT |
NOT NULL |
対象レコード ID |
snapshot |
TEXT |
NOT NULL |
削除前データ(JSON) |
deleted_at |
TEXT |
NOT NULL |
削除日時 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
活動系
venues 会場マスタ
オンライン開催の場合は URL を location に格納する。ソフトデリート対応。
| カラム名 |
型 |
制約 |
説明 |
venue_id |
TEXT |
PK |
会場 ID(UUID) |
name |
TEXT |
NOT NULL |
会場名 |
location |
TEXT |
|
住所または URL |
memo |
TEXT |
|
メモ |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
activity_sessions 活動セッション
いつどこで活動したかを記録する。作業終了と撤収完了は別々に記録する。
| カラム名 |
型 |
制約 |
説明 |
session_id |
TEXT |
PK |
セッション ID(UUID) |
venue_id |
TEXT |
NOT NULL FK→venues |
会場 ID |
date |
TEXT |
NOT NULL |
活動日(YYYY-MM-DD) |
planned_start_at |
TEXT |
NOT NULL |
開始予定時刻 |
planned_end_at |
TEXT |
NOT NULL |
終了予定時刻 |
actual_start_at |
TEXT |
|
実際の開始時刻 |
actual_end_at |
TEXT |
|
実際の終了時刻 |
work_end_at |
TEXT |
|
作業終了時刻 |
cleanup_end_at |
TEXT |
|
撤収完了時刻 |
is_cancelled |
INTEGER |
NOT NULL DEFAULT 0 |
キャンセルフラグ |
cancel_reason |
TEXT |
|
キャンセル理由 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
attendance_plans 出欠予定
活動前の出欠確認結果を記録する。未回答は unknown。
| カラム名 |
型 |
制約 |
説明 |
plan_id |
TEXT |
PK |
ID(UUID) |
session_id |
TEXT |
NOT NULL FK→activity_sessions |
セッション ID |
member_id |
TEXT |
NOT NULL FK→members |
メンバー ID |
planned_status |
TEXT |
NOT NULL DEFAULT 'unknown' |
venue / online / absent / unknown |
planned_late |
INTEGER |
NOT NULL DEFAULT 0 |
遅刻予定フラグ |
planned_arrival_at |
TEXT |
|
到着予定時刻 |
planned_early_leave |
INTEGER |
NOT NULL DEFAULT 0 |
早退予定フラグ |
planned_leave_at |
TEXT |
|
早退予定時刻 |
absence_reason |
TEXT |
|
欠席理由 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
attendance_records 出席実績
| カラム名 |
型 |
制約 |
説明 |
record_id |
TEXT |
PK |
ID(UUID) |
plan_id |
TEXT |
FK→attendance_plans |
出欠予定 ID |
session_id |
TEXT |
NOT NULL FK→activity_sessions |
セッション ID |
member_id |
TEXT |
NOT NULL FK→members |
メンバー ID |
actual_status |
TEXT |
NOT NULL DEFAULT 'unknown' |
venue / online / absent / unknown |
is_late |
INTEGER |
NOT NULL DEFAULT 0 |
遅刻フラグ |
arrival_at |
TEXT |
|
到着時刻 |
is_early_leave |
INTEGER |
NOT NULL DEFAULT 0 |
早退フラグ |
leave_at |
TEXT |
|
早退時刻 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
attendance_notes 出欠注釈
各ユーザーが出欠予定に自由テキストの注釈を追加できる。Discord / WebUI 両対応。
| カラム名 |
型 |
制約 |
説明 |
note_id |
TEXT |
PK |
ID(UUID) |
plan_id |
TEXT |
NOT NULL FK→attendance_plans |
出欠予定 ID |
discord_account_id |
TEXT |
NOT NULL FK→member_discord_accounts |
Discord アカウント ID |
content |
TEXT |
NOT NULL |
注釈内容 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
attendance_reminder_patterns 出欠催促タイムパターン
管理者が作成する催促通知テンプレート。複数の活動で使い回せる。
| カラム名 |
型 |
制約 |
説明 |
pattern_id |
TEXT |
PK |
ID(UUID) |
name |
TEXT |
NOT NULL |
パターン名 |
created_by |
TEXT |
NOT NULL FK→members |
作成者 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
attendance_reminder_timings 催促パターン各タイミング
| カラム名 |
型 |
制約 |
説明 |
timing_id |
TEXT |
PK |
ID(UUID) |
pattern_id |
TEXT |
NOT NULL FK→attendance_reminder_patterns |
パターン ID |
timing_type |
TEXT |
NOT NULL |
hours_before / days_before |
timing_value |
INTEGER |
NOT NULL |
時間数または日数 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
アンケート系
survey_templates アンケートテンプレート
公開前にテンプレートとして保存・管理できる。
| カラム名 |
型 |
制約 |
説明 |
template_id |
TEXT |
PK |
ID(UUID) |
title |
TEXT |
NOT NULL |
タイトル |
created_by |
TEXT |
NOT NULL FK→members |
作成者 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
survey_template_items テンプレート選択肢
| カラム名 |
型 |
制約 |
説明 |
item_id |
TEXT |
PK |
ID(UUID) |
template_id |
TEXT |
NOT NULL FK→survey_templates |
テンプレート ID |
order_index |
INTEGER |
NOT NULL |
表示順 |
content |
TEXT |
NOT NULL |
選択肢内容(時間・会場など) |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
surveys アンケート(公開済み)
| カラム名 |
型 |
制約 |
説明 |
survey_id |
TEXT |
PK |
ID(UUID) |
template_id |
TEXT |
FK→survey_templates |
元テンプレート ID(NULL 可) |
title |
TEXT |
NOT NULL |
タイトル |
created_by |
TEXT |
NOT NULL FK→members |
作成者 |
closes_at |
TEXT |
|
締め切り日時(NULL = 期限なし) |
closed_at |
TEXT |
|
実際の打ち切り日時 |
closed_by |
TEXT |
FK→members |
打ち切り実行者 |
discord_message_id |
TEXT |
|
Discord メッセージ ID |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
survey_items アンケート選択肢
| カラム名 |
型 |
制約 |
説明 |
item_id |
TEXT |
PK |
ID(UUID) |
survey_id |
TEXT |
NOT NULL FK→surveys |
アンケート ID |
order_index |
INTEGER |
NOT NULL |
表示順 |
content |
TEXT |
NOT NULL |
選択肢内容 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
survey_responses アンケート回答
Discord アカウント単位で回答を記録する(同一メンバーのサブ垢は最新を採用)。
| カラム名 |
型 |
制約 |
説明 |
response_id |
TEXT |
PK |
ID(UUID) |
survey_id |
TEXT |
NOT NULL FK→surveys |
アンケート ID |
item_id |
TEXT |
NOT NULL FK→survey_items |
選択肢 ID |
discord_account_id |
TEXT |
NOT NULL FK→member_discord_accounts |
Discord アカウント ID |
response |
TEXT |
NOT NULL |
ok / unsure / ng |
note |
TEXT |
|
補足コメント |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
作業系
task_roles 作業役割マスタ
| カラム名 |
型 |
制約 |
説明 |
task_role_id |
TEXT |
PK |
ID(UUID) |
name |
TEXT |
NOT NULL |
役割名 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
初期データ:機械系 / プログラミング系 / 回路系 / 連絡担当メイン / 連絡担当サブ
tasks 作業
parent_task_id が NULL の場合は最上位作業。無限ネスト対応。
| カラム名 |
型 |
制約 |
説明 |
task_id |
TEXT |
PK |
作業 ID(UUID) |
parent_task_id |
TEXT |
FK→tasks |
親作業 ID(NULL=最上位) |
name |
TEXT |
NOT NULL |
作業名 |
description |
TEXT |
|
説明 |
goal |
TEXT |
|
終了目標 |
status |
TEXT |
NOT NULL DEFAULT 'todo' |
4.2 参照 |
priority |
INTEGER |
NOT NULL DEFAULT 50 |
1〜100(大きいほど高優先度) |
planned_end_at |
TEXT |
|
予定終了日時 |
estimated_hours |
INTEGER |
|
予定所要時間(分単位) |
actual_end_at |
TEXT |
|
実際の終了日時 |
is_cancelled |
INTEGER |
NOT NULL DEFAULT 0 |
キャンセルフラグ |
cancel_reason |
TEXT |
|
キャンセル理由 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
task_assignments 作業担当者
| カラム名 |
型 |
制約 |
説明 |
task_assignment_id |
TEXT |
PK |
ID(UUID) |
task_id |
TEXT |
NOT NULL FK→tasks |
作業 ID |
member_id |
TEXT |
NOT NULL FK→members |
担当者 |
task_role_id |
TEXT |
FK→task_roles |
役割 ID |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
task_dependency_groups 作業依存グループ
OR 条件を表現するためのグループ。グループ内の依存先が全て完了するとグループが完了扱い。グループ同士は OR 関係(いずれか完了で解除)。
| カラム名 |
型 |
制約 |
説明 |
group_id |
TEXT |
PK |
ID(UUID) |
task_id |
TEXT |
NOT NULL FK→tasks |
依存元作業 ID |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
task_dependencies 作業依存関係
| カラム名 |
型 |
制約 |
説明 |
dependency_id |
TEXT |
PK |
ID(UUID) |
group_id |
TEXT |
NOT NULL FK→task_dependency_groups |
グループ ID |
depends_on_task_id |
TEXT |
NOT NULL FK→tasks |
依存先作業 ID |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
task_progress_history 作業進捗履歴
ステータス・優先度の変更履歴を全て記録する。
| カラム名 |
型 |
制約 |
説明 |
history_id |
TEXT |
PK |
ID(UUID) |
task_id |
TEXT |
NOT NULL FK→tasks |
作業 ID |
changed_by |
TEXT |
NOT NULL FK→members |
変更者 |
previous_status |
TEXT |
|
変更前ステータス |
new_status |
TEXT |
|
変更後ステータス |
previous_priority |
INTEGER |
|
変更前優先度 |
new_priority |
INTEGER |
|
変更後優先度 |
memo |
TEXT |
|
変更理由など |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
task_memos 作業メモ
1 つの作業に複数メモを追加できる。URL は urls テーブルで管理する。
| カラム名 |
型 |
制約 |
説明 |
memo_id |
TEXT |
PK |
ID(UUID) |
task_id |
TEXT |
NOT NULL FK→tasks |
作業 ID |
member_id |
TEXT |
NOT NULL FK→members |
投稿者 |
content |
TEXT |
|
メモ内容(複数行可) |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
手順系
procedure_templates 手順テンプレート
task_id が NULL の場合は汎用テンプレートとして複数作業で再利用できる。
| カラム名 |
型 |
制約 |
説明 |
template_id |
TEXT |
PK |
テンプレート ID(UUID) |
task_id |
TEXT |
FK→tasks |
紐付ける作業 ID(NULL=汎用) |
name |
TEXT |
NOT NULL |
テンプレート名 |
description |
TEXT |
|
説明 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
procedure_result_definitions 手順結果定義
テンプレートごとに結果値(ok/ng/skip など)を自由に定義する。
| カラム名 |
型 |
制約 |
説明 |
result_id |
TEXT |
PK |
ID(UUID) |
template_id |
TEXT |
NOT NULL FK→procedure_templates |
テンプレート ID |
value |
TEXT |
NOT NULL |
結果値(ok/ng/skip/timeout など) |
label |
TEXT |
NOT NULL |
表示名(正常・異常など) |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
procedure_template_steps 手順テンプレートステップ
| カラム名 |
型 |
制約 |
説明 |
step_id |
TEXT |
PK |
ステップ ID(UUID) |
template_id |
TEXT |
NOT NULL FK→procedure_templates |
テンプレート ID |
order_index |
INTEGER |
NOT NULL |
順序 |
name |
TEXT |
NOT NULL |
ステップ名 |
description |
TEXT |
|
説明 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
procedure_step_transitions 手順ステップ遷移
if/elif/else 的に priority で評価順を制御する。condition_type=always が else 相当。
| カラム名 |
型 |
制約 |
説明 |
transition_id |
TEXT |
PK |
ID(UUID) |
from_step_id |
TEXT |
NOT NULL FK→procedure_template_steps |
遷移元ステップ ID |
to_step_id |
TEXT |
NOT NULL FK→procedure_template_steps |
遷移先ステップ ID |
priority |
INTEGER |
NOT NULL |
評価順序(小さいほど先に評価) |
condition_type |
TEXT |
NOT NULL |
result / always |
condition_value |
TEXT |
|
結果値(condition_type=result のとき) |
label |
TEXT |
|
表示名(安全確認 OK など) |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
遷移評価ロジック例:
priority=1 if condition_type=result, condition_value=ok → ステップ 4 へ
priority=2 elif condition_type=result, condition_value=ng → ステップ 1 へ
priority=3 else condition_type=always → ステップ 5 へ
procedure_instances 手順実績
作業に対してテンプレートから生成される実際の手順実行記録。
| カラム名 |
型 |
制約 |
説明 |
instance_id |
TEXT |
PK |
ID(UUID) |
task_id |
TEXT |
NOT NULL FK→tasks |
作業 ID |
template_id |
TEXT |
NOT NULL FK→procedure_templates |
元テンプレート ID |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
procedure_instance_steps 手順実績ステップ
各ステップの実行結果・完了者・完了日時を記録する。
| カラム名 |
型 |
制約 |
説明 |
instance_step_id |
TEXT |
PK |
ID(UUID) |
instance_id |
TEXT |
NOT NULL FK→procedure_instances |
手順実績 ID |
step_id |
TEXT |
NOT NULL FK→procedure_template_steps |
元ステップ ID |
order_index |
INTEGER |
NOT NULL |
順序 |
name |
TEXT |
NOT NULL |
ステップ名 |
result_value |
TEXT |
|
実際の結果値 |
is_done |
INTEGER |
NOT NULL DEFAULT 0 |
完了フラグ |
done_by |
TEXT |
FK→members |
完了者 |
done_at |
TEXT |
|
完了日時 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
活動×作業紐付け
session_task_records 活動×作業記録
活動セッションと親作業の紐付け。進捗 % は子作業完了数÷総数で自動算出する。
| カラム名 |
型 |
制約 |
説明 |
record_id |
TEXT |
PK |
ID(UUID) |
session_id |
TEXT |
NOT NULL FK→activity_sessions |
セッション ID |
task_id |
TEXT |
NOT NULL FK→tasks |
親作業 ID |
progress_note |
TEXT |
|
その日どこまで進んだかのメモ |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
通知系
notification_rules 通知ルール
| カラム名 |
型 |
制約 |
説明 |
rule_id |
TEXT |
PK |
ID(UUID) |
type |
TEXT |
NOT NULL |
4.3 参照 |
discord_channel_id |
TEXT |
NOT NULL |
通知先 Discord チャンネル ID |
is_active |
INTEGER |
NOT NULL DEFAULT 1 |
有効フラグ |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
notification_timings 通知タイミング
timing_value は days_before では正=期限前・0=当日・負=期限後(遅延後)を表す。
| カラム名 |
型 |
制約 |
説明 |
timing_id |
TEXT |
PK |
ID(UUID) |
rule_id |
TEXT |
NOT NULL FK→notification_rules |
ルール ID |
timing_type |
TEXT |
NOT NULL |
days_before / hours_before |
timing_value |
INTEGER |
NOT NULL |
日数または時間数(負値=期限後) |
time_of_day |
TEXT |
|
通知時刻 HH:MM(hours_before の場合 NULL) |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |
タイミング設定例:
| timing_type |
timing_value |
time_of_day |
意味 |
| days_before |
3 |
09:00 |
3 日前の 09:00 |
| days_before |
0 |
09:00 |
当日の 09:00 |
| days_before |
-1 |
09:00 |
翌日(遅延後)の 09:00 |
| hours_before |
6 |
NULL |
6 時間前 |
共通
urls URL 管理
task / task_memo / procedure_step など複数テーブルのレコードに URL を複数持てる。
| カラム名 |
型 |
制約 |
説明 |
url_id |
TEXT |
PK |
ID(UUID) |
target_type |
TEXT |
NOT NULL |
対象テーブル種別(task / task_memo / procedure_step など) |
target_id |
TEXT |
NOT NULL |
対象レコード ID |
url |
TEXT |
NOT NULL |
URL |
label |
TEXT |
|
表示名 |
created_at |
TEXT |
NOT NULL |
作成日時 |
updated_at |
TEXT |
NOT NULL |
更新日時 |
deleted_at |
TEXT |
|
論理削除日時 |
deleted_by |
TEXT |
FK→members |
削除者 |
source |
TEXT |
NOT NULL |
データ出典 |
history_ref |
TEXT |
|
履歴関連付け ID |