CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID', username VARCHAR(100) NOT NULL UNIQUE COMMENT '用户名', password VARCHAR(100) NOT NULL COMMENT '用户密码', phone VARCHAR(15) NOT NULL UNIQUE COMMENT '用户手机号', auth_status ENUM('unverified','pending', 'approved', 'rejected') DEFAULT 'unverified' COMMENT '认证状态:unverified=未提交,pending=待审核,approved=审核通过,rejected=审核拒绝', disable TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否禁用,0=未禁用,1=禁用', internal TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否内部人员,0=否,1=是', quota_exceeded TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否额度用完,0=否,1=是', created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '用户创建时间', updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '用户更新时间', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表,存储用户的基本信息'; CREATE TABLE enterprise_info ( id INT(11) NOT NULL AUTO_INCREMENT COMMENT '企业信息ID', user_id BIGINT NOT NULL UNIQUE COMMENT '关联的用户ID', enterprise_name VARCHAR(150) NOT NULL UNIQUE COMMENT '企业名称', credit_code VARCHAR(150) NOT NULL UNIQUE COMMENT '企业统一信用代码', legal_person VARCHAR(150) NOT NULL COMMENT '法人代表', business_license VARCHAR(1024) NOT NULL COMMENT '营业执照存储路径', enterprise_contact VARCHAR(100) NOT NULL COMMENT '企业联系方式', created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '企业信息创建时间', updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '企业信息更新时间', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企业信息表,存储认证通过的企业详细信息'; CREATE TABLE enterprise_auth ( id INT(11) NOT NULL AUTO_INCREMENT COMMENT '认证ID', user_id INT(11) NOT NULL COMMENT '关联的用户ID', enterprise_name VARCHAR(150) NOT NULL COMMENT '企业名称', credit_code VARCHAR(150) NOT NULL COMMENT '企业统一信用代码', legal_person VARCHAR(150) NOT NULL COMMENT '法人代表', business_license VARCHAR(1000) NOT NULL COMMENT '营业执照存储路径', enterprise_contact VARCHAR(100) NOT NULL COMMENT '企业联系方式', auth_status ENUM('unverified','pending', 'approved', 'rejected') DEFAULT 'unverified' COMMENT '认证状态:unverified=未提交,pending=待审核,approved=审核通过,rejected=审核拒绝', created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '认证创建时间', updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '认证更新时间', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企业认证表,存储企业认证的相关信息'; CREATE TABLE wallets ( id INT(11) NOT NULL AUTO_INCREMENT COMMENT '钱包ID', user_id INT(11) NOT NULL UNIQUE COMMENT '用户ID', balance DECIMAL(10, 2) DEFAULT 0.00 COMMENT '钱包余额', version INT(11) DEFAULT 0 COMMENT '乐观锁版本号', created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='钱包表,存储用户的余额信息'; CREATE TABLE deductions ( id INT(11) NOT NULL AUTO_INCREMENT COMMENT '扣款记录ID', user_id INT(11) NOT NULL COMMENT '用户ID', amount DECIMAL(10, 2) NOT NULL COMMENT '扣款金额', transaction_id VARCHAR(50) NOT NULL UNIQUE COMMENT '交易流水号', created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '扣款时间', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='扣款记录表,存储用户的扣款历史记录'; CREATE TABLE api_requests ( id INT(11) NOT NULL AUTO_INCREMENT COMMENT '请求记录ID', transaction_id VARCHAR(50) NOT NULL UNIQUE COMMENT '交易ID', user_id INT(11) NOT NULL COMMENT '用户ID', product_code VARCHAR(100) NOT NULL COMMENT '产品编码', status ENUM('success', 'failed') DEFAULT 'success' COMMENT '请求状态:success=成功,failed=失败', charges TINYINT(1) NOT NULL COMMENT '是否需要付费', remark VARCHAR(255) COMMENT '备注', timestamp DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '请求时间', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='API请求记录表,存储API请求的相关信息'; CREATE TABLE `recharge` ( id INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键', user_id INT(11) NOT NULL COMMENT '用户ID', `transaction_id` VARCHAR(64) NOT NULL UNIQUE COMMENT '交易ID,唯一', `out_trade_no` VARCHAR(64) NOT NULL UNIQUE COMMENT '外部订单号,唯一', `amount` DECIMAL(10, 2) NOT NULL COMMENT '充值金额', `payment_method` TINYINT NOT NULL COMMENT '充值方式 1-支付宝在线支付, 2-对公转账', created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='充值记录表';