# 2026/02/27 档案管理模块 # ============================ # 用户档案表 # ============================ CREATE TABLE `pet_system`.`usr_customer` ( `id` bigint PRIMARY KEY NOT NULL COMMENT '主键ID', `open_id` varchar(100) COMMENT '微信OpenID', `nickname` varchar(50) COMMENT '昵称', `name` varchar(50) COMMENT '真实姓名', `gender` tinyint DEFAULT 0 COMMENT '性别 (0:男, 1:女, 2:未知)', `phone` varchar(20) COMMENT '手机号', `avatar` bigint COMMENT '头像', `area_id` bigint COMMENT '常驻区域ID', `station_id` bigint COMMENT '所属站点ID', `region_code` varchar(20) COMMENT '省市区编码', `address` varchar(255) COMMENT '详细住址', `house_type` varchar(20) DEFAULT 'elevator' COMMENT '房屋类型 (stairs:楼梯, elevator:电梯)', `entry_method` varchar(20) DEFAULT 'password' COMMENT '入门方式 (password:密码, key:钥匙)', `entry_password` varchar(50) COMMENT '开门密码', `key_location` varchar(100) COMMENT '钥匙位置', `source` varchar(50) COMMENT '来源渠道', `pet_count` int DEFAULT 0 COMMENT '宠物数量', `points` int DEFAULT 0 COMMENT '积分', `balance` bigint DEFAULT 0 COMMENT '余额(分)', `order_count` int DEFAULT 0 COMMENT '下单次数', `total_consume` bigint DEFAULT 0 COMMENT '总消费额(分)', `status` tinyint DEFAULT 0 COMMENT '状态 (0:正常, 1:冻结)', `remark` varchar(500) COMMENT '后台备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', `create_dept` bigint(20) COMMENT '创建部门', `create_by` bigint(20) COMMENT '创建者', `create_time` datetime COMMENT '创建时间', `update_by` bigint(20) COMMENT '更新者', `update_time` datetime COMMENT '更新时间' ) ENGINE = innoDB COMMENT = 'C端用户表'; # ============================ # 宠物档案表 # ============================ CREATE TABLE `pet_system`.`usr_pet` ( `id` bigint PRIMARY KEY NOT NULL COMMENT '主键ID', `user_id` bigint NOT NULL COMMENT '所属用户ID', `name` varchar(50) NOT NULL COMMENT '宠物昵称', `avatar` bigint COMMENT '头像', `type` tinyint DEFAULT 1 COMMENT '类型 (1:猫, 2:狗, 3:其他)', `breed` varchar(50) COMMENT '品种', `gender` tinyint DEFAULT 1 COMMENT '性别 (1:公, 2:母)', `birthday` date COMMENT '出生日期', `age` int DEFAULT 0 COMMENT '年龄(岁)', `weight` decimal(5, 2) DEFAULT 0.00 COMMENT '体重(kg)', `size` varchar(20) DEFAULT 'small' COMMENT '体型 (small:小型, medium:中型, large:大型)', `is_sterilized` tinyint DEFAULT 0 COMMENT '是否绝育 (0:否, 1:是)', `arrival_time` date COMMENT '到家时间', `house_type` varchar(20) COMMENT '家庭房屋类型', `entry_method` varchar(20) COMMENT '入门方式', `entry_password` varchar(50) COMMENT '开门密码', `key_location` varchar(100) COMMENT '钥匙位置', `personality` varchar(255) COMMENT '性格关键词', `cute_personality` text COMMENT '萌宠性格描述', `health_status` varchar(50) DEFAULT '健康' COMMENT '健康状况', `aggression` tinyint DEFAULT 0 COMMENT '是否有攻击倾向 (0:否, 1:是)', `vaccine_status` varchar(50) COMMENT '疫苗状态', `vaccine_cert` bigint COMMENT '疫苗凭证图片', `medical_history` text COMMENT '既往病史', `allergies` text COMMENT '过敏史', `remark` varchar(500) COMMENT '特别备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', `create_dept` bigint(20) COMMENT '创建部门', `create_by` bigint(20) COMMENT '创建者', `create_time` datetime COMMENT '创建时间', `update_by` bigint(20) COMMENT '更新者', `update_time` datetime COMMENT '更新时间' ) ENGINE = innoDB COMMENT = '宠物档案表'; # ============================ # 标签定义表 # ============================ CREATE TABLE `pet_system`.`sys_tag` ( `id` bigint PRIMARY KEY NOT NULL COMMENT '主键ID', `name` varchar(50) NOT NULL COMMENT '标签名称', `category` varchar(20) NOT NULL COMMENT '分类 (user:用户, pet:宠物, fulfiller:履约者)', `color_type` varchar(20) DEFAULT 'info' COMMENT '颜色样式 (primary, success, warning, danger, info)', `description` varchar(255) COMMENT '标签说明', `type` tinyint DEFAULT 2 COMMENT '类型 (1:系统内置, 2:自定义)', `status` tinyint DEFAULT 0 COMMENT '状态 (0:启用, 1:停用)', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', `create_dept` bigint(20) COMMENT '创建部门', `create_by` bigint(20) COMMENT '创建者', `create_time` datetime COMMENT '创建时间', `update_by` bigint(20) COMMENT '更新者', `update_time` datetime COMMENT '更新时间' ) ENGINE = innoDB COMMENT = '标签定义表'; # ============================ # 标签关联表 # ============================ CREATE TABLE `pet_system`.`sys_tag_rel` ( `id` bigint PRIMARY KEY NOT NULL COMMENT '主键ID', `tag_id` bigint NOT NULL COMMENT '标签ID', `target_id` bigint NOT NULL COMMENT '目标对象ID', `target_type` varchar(20) NOT NULL COMMENT '目标类型 (user:用户, pet:宠物, fulfiller:履约者)', UNIQUE KEY `uk_tag_target` (`tag_id`, `target_id`, `target_type`) ) ENGINE = innoDB COMMENT = '标签关联表'; # ============================ # 档案变更日志表 # ============================ CREATE TABLE `pet_system`.`arc_change_log` ( `id` bigint PRIMARY KEY NOT NULL COMMENT '主键ID', `target_id` bigint NOT NULL COMMENT '目标对象ID', `target_type` varchar(20) NOT NULL COMMENT '目标类型 (user:用户, pet:宠物)', `content` varchar(500) COMMENT '日志内容', `log_type` varchar(20) DEFAULT 'remark' COMMENT '日志类型 (remark:备注, system:系统, change:变更)', `operator_id` bigint COMMENT '操作人ID', `operator_name` varchar(50) COMMENT '操作人名称', `create_time` datetime COMMENT '创建时间', KEY `idx_target` (`target_id`, `target_type`) ) ENGINE = innoDB COMMENT = '档案变更日志表';