V18 · Database schema

Schema dữ liệu phải bắt đầu từ ranh giới quyền, không bắt đầu từ ham muốn thu thập.

Bản v18 đề xuất cấu trúc bảng tối thiểu cho participant, consent, R4 submission, report và audit event.

v1-draft

Quy tắc nền

  • Không ghi đè submission đã khóa; tạo version mới nếu cần sửa.
  • Không đưa dữ liệu vào dashboard tổ chức nếu thiếu consent nghiên cứu ẩn danh.
  • Không xuất report pack vượt audience đã khai báo.
  • Mọi thay đổi consent, submission, report và dashboard phải có audit event tối thiểu.
table

participants

Hồ sơ tối thiểu của người tham gia.

Ranh giới: Không lưu thuộc tính nhạy cảm nếu không cần cho vận hành Lab.

  • id: uuid
  • display_name: text
  • cohort_id: uuid
  • created_at: timestamptz
table

consent_records

Lưu quyết định đồng thuận theo version chính sách.

Ranh giới: Consent có thể rút; audit vẫn giữ dấu vết tối thiểu để chứng minh trách nhiệm.

  • id: uuid
  • participant_id: uuid
  • policy_version: text
  • accepted_scopes: jsonb
  • status: text
table

r4_submissions

Lưu câu trả lời R4 theo schema version.

Ranh giới: Câu trả lời thô không mặc định mở cho tổ chức.

  • id: uuid
  • participant_id: uuid
  • schema_id: text
  • schema_version: text
  • phase: text
table

reports

Lưu báo cáo đã sinh từ submission.

Ranh giới: Báo cáo cá nhân mặc định thuộc người tham gia; tổ chức chỉ xem aggregate.

  • id: uuid
  • participant_id: uuid
  • source_submission_ids: jsonb
  • visibility: text
  • content_markdown: text
table

audit_events

Truy vết các sự kiện dữ liệu quan trọng.

Ranh giới: Audit chỉ lưu thông tin đủ để kiểm tra trách nhiệm, không lưu nội dung thô không cần thiết.

  • id: uuid
  • actor_id: text
  • event_type: text
  • target_id: text
  • created_at: timestamptz