-- 対応表（identity.sqlite）の最初のスキーマ（SPEC_02「対応表」）．
-- 目録とは別の DB なので，版（PRAGMA user_version）の系列も目録とは別にする．
-- apply_migrations() が BEGIN・COMMIT で囲み，PRAGMA user_version を更新する．
-- 適用済みのマイグレーションは編集しない．

CREATE TABLE identity_map (
    -- 実際の患者 ID（取り込み元が持つもの）
    -- INTEGER 以外の PRIMARY KEY は NULL を受け入れ，CHECK も NULL を違反としないため NOT NULL を明示する
    patient_key TEXT NOT NULL PRIMARY KEY CHECK (patient_key <> ''),
    -- 研究用 ID．1 つの症例は 1 人の患者にだけ対応する
    subject_id TEXT NOT NULL UNIQUE
        CHECK (subject_id GLOB 'S[0-9][0-9][0-9][0-9][0-9][0-9]'),
    created_at TEXT NOT NULL
        CHECK (created_at GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]Z')
);
