elder-yudao-pro/mysql_script/health/V001__health_identity.sql

90 lines
5.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 健康模块第一阶段:只新增表,不删除或导入旧数据。
-- 先执行 V001,再执行 V002 菜单脚本。重复执行不会清空数据,也不会升级已存在表的字段。
SET NAMES utf8mb4;
CREATE TABLE IF NOT EXISTS health_identity (
id bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
member_id bigint NOT NULL COMMENT 'member_user.id;不是 system_user.id',
identity_type tinyint NOT NULL COMMENT '10 老人、20 志愿者、30 家属;创建后不更换',
real_name varchar(30) NOT NULL COMMENT '真实姓名',
contact_phone varchar(30) NULL COMMENT '联系方式,可与登录手机号不同',
gender tinyint NOT NULL DEFAULT 3 COMMENT '1 男、2 女、3 未知',
birth_date date NULL COMMENT '出生日期',
address varchar(500) NULL COMMENT '地址',
status tinyint NOT NULL DEFAULT 0 COMMENT '0 启用、1 停用',
audit_status tinyint NOT NULL COMMENT '0 待审、1 通过、2 驳回',
audit_user_id bigint NULL COMMENT '审核管理员 system_users.id',
audit_time datetime NULL COMMENT '最近审核时间',
audit_reason varchar(500) NULL COMMENT '最近审核理由',
creator varchar(64) DEFAULT '' COMMENT '创建者',
create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updater varchar(64) DEFAULT '' COMMENT '更新者',
update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标记;身份管理使用停用保留历史',
tenant_id bigint NOT NULL COMMENT '租户编号',
PRIMARY KEY (id),
UNIQUE KEY uk_health_identity_member (tenant_id, member_id),
KEY idx_health_identity_type (tenant_id, identity_type, status, audit_status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='健康业务身份,一个账号一种身份';
CREATE TABLE IF NOT EXISTS health_elderly_profile (
id bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
identity_id bigint NOT NULL COMMENT 'health_identity.id,必须是老人身份',
emergency_contact varchar(60) NULL COMMENT '紧急联系人',
emergency_phone varchar(30) NULL COMMENT '紧急联系电话',
health_status varchar(500) NULL COMMENT '健康状况摘要,不替代历次评估',
medical_history varchar(2000) NULL COMMENT '病史',
medication_info varchar(2000) NULL COMMENT '用药信息',
special_needs varchar(1000) NULL COMMENT '特殊需求',
creator varchar(64) DEFAULT '' COMMENT '创建者',
create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updater varchar(64) DEFAULT '' COMMENT '更新者',
update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标记;身份管理使用停用保留历史',
tenant_id bigint NOT NULL COMMENT '租户编号',
PRIMARY KEY (id),
UNIQUE KEY uk_health_elderly_identity (tenant_id, identity_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='老人基础健康档案';
CREATE TABLE IF NOT EXISTS health_volunteer_profile (
id bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
identity_id bigint NOT NULL COMMENT 'health_identity.id,必须是志愿者身份',
skills varchar(1000) NULL COMMENT '服务技能',
service_areas varchar(500) NULL COMMENT '服务区域;后续匹配可细化',
available_time varchar(1000) NULL COMMENT '可服务时间说明;后续排班可细化',
service_experience varchar(2000) NULL COMMENT '服务经验',
creator varchar(64) DEFAULT '' COMMENT '创建者',
create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updater varchar(64) DEFAULT '' COMMENT '更新者',
update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标记;身份管理使用停用保留历史',
tenant_id bigint NOT NULL COMMENT '租户编号',
PRIMARY KEY (id),
UNIQUE KEY uk_health_volunteer_identity (tenant_id, identity_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='志愿者服务档案';
CREATE TABLE IF NOT EXISTS health_family_relation (
id bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
family_identity_id bigint NOT NULL COMMENT '家属 health_identity.id',
elderly_profile_id bigint NOT NULL COMMENT '老人 health_elderly_profile.id,不是 member_id',
relationship varchar(30) NOT NULL COMMENT '与老人关系',
status tinyint NOT NULL DEFAULT 0 COMMENT '0 待确认、1 已确认、2 已拒绝、3 已解除',
review_user_type tinyint NULL COMMENT '确认者账号类型:1 member、2 admin',
review_user_id bigint NULL COMMENT '确认者账号编号,结合 user_type 解释',
review_time datetime NULL COMMENT '最近确认或拒绝时间',
review_reason varchar(500) NULL COMMENT '管理员确认必须记录核实理由',
revoke_user_type tinyint NULL COMMENT '解除者账号类型',
revoke_user_id bigint NULL COMMENT '解除者账号编号',
revoke_time datetime NULL COMMENT '最近解除时间',
revoke_reason varchar(500) NULL COMMENT '解除理由',
creator varchar(64) DEFAULT '' COMMENT '创建者',
create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updater varchar(64) DEFAULT '' COMMENT '更新者',
update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标记;身份管理使用停用保留历史',
tenant_id bigint NOT NULL COMMENT '租户编号',
PRIMARY KEY (id),
UNIQUE KEY uk_health_family_pair (tenant_id, family_identity_id, elderly_profile_id),
KEY idx_health_family_elderly (tenant_id, elderly_profile_id, status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='家属与老人多对多关联,确认后授权';