-- B07作者偏好及反馈:当前指针和只追加历史分开,评测角色无生产内容权限。 CREATE TABLE public.muse_preference ( preference_id uuid PRIMARY KEY, author_id text NOT NULL, current_revision integer NOT NULL CHECK (current_revision > 0) ); CREATE TABLE public.muse_preference_version ( preference_id uuid NOT NULL REFERENCES public.muse_preference, revision integer NOT NULL CHECK (revision > 0), payload jsonb NOT NULL, content_hash text NOT NULL CHECK (content_hash ~ '^[0-9a-f]{64}$'), state text NOT NULL CHECK (state IN ('pending','active','withdrawn')), created_at timestamptz NOT NULL DEFAULT clock_timestamp(), PRIMARY KEY (preference_id,revision) ); CREATE TABLE public.muse_author_feedback ( feedback_id uuid PRIMARY KEY, author_id text NOT NULL, command_id text NOT NULL, payload jsonb NOT NULL, content_hash text NOT NULL CHECK (content_hash ~ '^[0-9a-f]{64}$'), created_at timestamptz NOT NULL DEFAULT clock_timestamp(), UNIQUE (author_id,command_id) ); CREATE TRIGGER muse_preference_version_immutable BEFORE UPDATE OR DELETE ON public.muse_preference_version FOR EACH ROW EXECUTE FUNCTION public.muse_guard_literary_history(); CREATE TRIGGER muse_author_feedback_immutable BEFORE UPDATE OR DELETE ON public.muse_author_feedback FOR EACH ROW EXECUTE FUNCTION public.muse_guard_literary_history(); REVOKE ALL ON public.muse_preference, public.muse_preference_version, public.muse_author_feedback FROM muse_eval; GRANT SELECT,INSERT,UPDATE ON public.muse_preference TO muse_app; GRANT SELECT,INSERT ON public.muse_preference_version,public.muse_author_feedback TO muse_app;