コンテンツにスキップ

survey_permissions

概要

案件ごとの共有権限を管理する中間テーブル。ユーザーが案件に対して持つ役割(閲覧/編集)を表す。

テーブル定義

論理名 物理名 カラム名 データ型 主キー リレーション ユニーク NULL許可 デフォルト値 備考
案件権限 survey_permissions survey_id uuid ◯ surveys:id (cascade)
user_id uuid ◯ users:id (cascade)
role_type permission_role ◯ view / edit
created_at timestamptz now()

リレーション

  • survey_id → surveys.id (onDelete: cascade)
  • user_id → users.id (onDelete: cascade)

インデックス

  • 主キー (survey_id, user_id, role_type) の複合主キー

注記

  • 案件の作成時、作成者に edit 権限が自動で付与される
  • 案件の複製時、複製元の権限がすべて引き継がれる
  • 権限の更新は一括更新(PUT /api/surveys/{surveyId}/permissions)で、既存の権限をすべて削除してから指定内容を挿入する
  • 管理者はこのテーブルにレコードがなくてもすべての案件にアクセスできる
  • 複合主キーの構成上、同じユーザーが同じ案件に view と edit の両方を持つことは技術的に可能だが、UI 上は 1 ユーザー 1 役割として扱う