-- 创建互动记录表 -- 如果表已存在则先删除 DROP TABLE IF EXISTS public.ak_interactions CASCADE; -- 互动记录表 CREATE TABLE public.ak_interactions ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), -- 互动ID user_id uuid REFERENCES public.ak_users(id) ON DELETE CASCADE, -- 用户ID (发起互动的用户) target_type VARCHAR(32) NOT NULL, -- 目标类型:training_record, assignment_submission, teaching_resource等 target_id uuid NOT NULL, -- 目标ID (被互动的对象ID) interaction_type VARCHAR(32) NOT NULL, -- 互动类型:comment(评论), like(点赞), share(分享)等 content TEXT, -- 互动内容 (如评论内容,点赞时可为空) created_at TIMESTAMP WITH TIME ZONE DEFAULT now(), -- 创建时间 updated_at TIMESTAMP WITH TIME ZONE DEFAULT now() -- 更新时间 ); -- 添加表注释 COMMENT ON TABLE public.ak_interactions IS '互动记录表'; COMMENT ON COLUMN public.ak_interactions.target_type IS '目标类型:training_record(训练记录), assignment_submission(作业提交), teaching_resource(教学资源)等'; COMMENT ON COLUMN public.ak_interactions.interaction_type IS '互动类型:comment(评论), like(点赞), share(分享)等'; -- 创建索引 CREATE INDEX idx_interactions_user_id ON public.ak_interactions(user_id); CREATE INDEX idx_interactions_target ON public.ak_interactions(target_type, target_id); CREATE INDEX idx_interactions_type ON public.ak_interactions(interaction_type); -- 验证表是否创建成功 SELECT 'ak_interactions table created successfully' as result;