User Project Table
概要
管理用のテーブル user accessible projects
テーブル定義
| 論理名 | 物理名 | カラム名 | データ型 | 主キー | リレーション | ユニーク | NULL許可 | デフォルト値 | 備考 |
|---|---|---|---|---|---|---|---|---|---|
| User Accessible Project | user_project | id | serial | ◯ | |||||
| user_id | string | user.cognito_subへの論理参照 (FK制約なし) | |||||||
| project_id | number | project:id | |||||||
| project_access | number | 1 | 0, 1, 2で権限なし、読み取り、読み取り・書き込み | ||||||
| created_at | datetime | ||||||||
| updated_at | datetime | ||||||||
| deleted_at | datetime | ◯ | |||||||
| created_by | string | user:cognito_sub | |||||||
| updated_by | string | user:cognito_sub | |||||||
| deleted_by | string | user:cognito_sub | ◯ |
リレーション
- user_id → user.cognito_sub (論理参照、FK制約なし)
- project_id → project.id
インデックス
- 主キー (id)
- ユニークインデックス
user_project_user_id_project_id_active_idx(user_id, project_id) WHERE deleted_at IS NULL - インデックス
user_project_project_id_user_id_idx(project_id, user_id)
Permission Levels
- 0: No access
- 1: Read
- 2: Read/Write
注記
- ユーザーとプロジェクトの多対多リレーションを管理する中間テーブル
- プロジェクトごとにアクセス権限を設定可能
- デフォルト値は 1 (読み取り権限)
- ユーザーとプロジェクトの組み合わせごとに有効な割り当ては 1 件のみ。論理削除済みの履歴は保持される
- 論理削除サポート (deleted_atカラム)
- 監査ログサポート (created_by、updated_by、deleted_by)