-- B06案例版本只追加,当前指针由S01作者操作推进。 CREATE TABLE public.muse_quality_case ( case_id uuid PRIMARY KEY, author_id text NOT NULL, current_revision bigint NOT NULL CHECK(current_revision>0) ); CREATE TABLE public.muse_quality_case_version ( case_id uuid NOT NULL REFERENCES public.muse_quality_case(case_id), revision bigint NOT NULL CHECK(revision>0), state text NOT NULL CHECK(state IN ('shadow','confirmed','withdrawn')), payload jsonb NOT NULL CHECK(jsonb_typeof(payload)='object'), payload_hash text NOT NULL CHECK(payload_hash ~ '^[0-9a-f]{64}$'), created_at timestamptz NOT NULL DEFAULT clock_timestamp(), PRIMARY KEY(case_id,revision) ); ALTER TABLE public.muse_quality_case ADD CONSTRAINT quality_case_current_fk FOREIGN KEY(case_id,current_revision) REFERENCES public.muse_quality_case_version(case_id,revision) DEFERRABLE INITIALLY DEFERRED; CREATE TRIGGER quality_case_history_guard BEFORE UPDATE OR DELETE ON public.muse_quality_case_version FOR EACH ROW EXECUTE FUNCTION public.muse_guard_literary_history();