Files
superlink/sql/migration_v1.0.18.sql

119 lines
7.0 KiB
SQL
Raw Permalink 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.
-- ============================================================
-- SuperLink Web 后台管理系统 - v1.0.18 数据库结构变更脚本
-- 对应需求文档:0807---29877584-0c3b-41d8-b102-e9aa9c1cea62.docx
-- 1) 数据字典表改名:date_dict_* -> data_dict_*(其它无变化)
-- 2) 新增企业类型字典表 data_dict_company_type(对应 companies.legal_form 企业类型)
-- 3) company_certifications 增加「级别」「颁证机构」
-- 4) company_products 增加「产品基本定位」「包含系列」
-- 5) 新增 EAV 产品参数表:company_products_attr / company_products_attr_value
-- 6) 新增渠道新增计划表 channel_plans
-- 执行方式:直接执行本文件(先备份数据库)
-- ============================================================
SET NAMES utf8mb4;
-- ------------------------------------------------------------
-- 1) 数据字典表改名(其它无变化)
-- ------------------------------------------------------------
RENAME TABLE `date_dict_area` TO `data_dict_area`;
RENAME TABLE `date_dict_certificate` TO `data_dict_certificate`;
RENAME TABLE `date_dict_country` TO `data_dict_country`;
RENAME TABLE `date_dict_industry` TO `data_dict_industry`;
-- ------------------------------------------------------------
-- 2) 企业类型字典表(对应 companies 表「企业类型」,后续按需增加具体类型)
-- ------------------------------------------------------------
DROP TABLE IF EXISTS `data_dict_company_type`;
CREATE TABLE `data_dict_company_type` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`code` VARCHAR(50) NULL DEFAULT NULL COMMENT '企业类型编码',
`name` VARCHAR(100) NOT NULL COMMENT '企业类型名称',
`sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序',
`is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_code` (`code`),
KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='企业类型字典(对应 companies.legal_form 企业类型)';
INSERT INTO `data_dict_company_type` (`code`, `name`, `sort_order`) VALUES
('llc', '有限责任公司', 1),
('joint_stock', '股份有限公司', 2),
('partnership', '合伙企业', 3),
('sole_proprietorship', '个人独资企业', 4),
('state_owned', '国有企业', 5),
('collective', '集体所有制企业', 6),
('foreign_invested', '外商投资企业', 7),
('joint_venture', '中外合资企业', 8),
('other', '其他', 99);
-- ------------------------------------------------------------
-- 3) 资质认证表增加「级别」「颁证机构」
-- ------------------------------------------------------------
ALTER TABLE `company_certifications`
ADD COLUMN `level` VARCHAR(50) NULL DEFAULT NULL COMMENT '级别' AFTER `certificate_number`,
ADD COLUMN `issuing_authority` VARCHAR(200) NULL DEFAULT NULL COMMENT '颁证机构' AFTER `level`;
-- ------------------------------------------------------------
-- 4) 产品基础表(company_products)增加「产品基本定位」「包含系列」
-- 说明:产品基本定位 = 介绍这一款产品的商业定位
-- ------------------------------------------------------------
ALTER TABLE `company_products`
ADD COLUMN `positioning` TEXT NULL COMMENT '产品基本定位(商业定位介绍)' AFTER `category_description`,
ADD COLUMN `series` VARCHAR(200) NULL COMMENT '包含系列' AFTER `positioning`;
-- ------------------------------------------------------------
-- 5) EAV 模式产品参数表(参考 DeepSeek 分享方案)
-- company_products_attr 参数属性定义表:按行业定义「有哪些参数」(元数据)
-- company_products_attr_value 产品参数值表:产品 + 参数属性 -> 具体值
-- ------------------------------------------------------------
DROP TABLE IF EXISTS `company_products_attr`;
CREATE TABLE `company_products_attr` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '参数属性ID',
`industry` VARCHAR(100) NOT NULL COMMENT '所属行业(对应 companies.industry)',
`attr_name` VARCHAR(50) NOT NULL COMMENT '参数名称',
`attr_type` ENUM('string','number','boolean','date') NOT NULL DEFAULT 'string' COMMENT '参数类型',
`unit` VARCHAR(20) NULL DEFAULT NULL COMMENT '单位',
`sort_order` INT NOT NULL DEFAULT 0 COMMENT '展示排序',
`is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_industry_attr` (`industry`, `attr_name`),
KEY `idx_industry` (`industry`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='产品参数属性定义表(EAV,按行业定义参数)';
DROP TABLE IF EXISTS `company_products_attr_value`;
CREATE TABLE `company_products_attr_value` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`product_id` INT UNSIGNED NOT NULL COMMENT '产品ID(关联 company_products.id)',
`attr_id` INT UNSIGNED NOT NULL COMMENT '参数属性ID(关联 company_products_attr.id)',
`value_string` TEXT NULL COMMENT '字符串值',
`value_number` DECIMAL(20,4) NULL COMMENT '数值',
`value_boolean` TINYINT(1) NULL COMMENT '布尔值',
`value_date` DATE NULL COMMENT '日期值',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_product_attr` (`product_id`, `attr_id`),
KEY `idx_product` (`product_id`),
KEY `idx_attr` (`attr_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='产品参数值表(EAV,产品与参数属性关联存储具体值)';
-- ------------------------------------------------------------
-- 6) 渠道新增计划表(渠道管理 - 渠道新增计划)
-- ------------------------------------------------------------
DROP TABLE IF EXISTS `channel_plans`;
CREATE TABLE `channel_plans` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`channel_type` VARCHAR(50) NOT NULL COMMENT '渠道类别(= source_channel 枚举)',
`source_detail` VARCHAR(255) NULL DEFAULT NULL COMMENT '来源详情',
`industry` VARCHAR(100) NULL DEFAULT NULL COMMENT '所属行业',
`start_date` DATE NULL DEFAULT NULL COMMENT '时间窗口开始',
`end_date` DATE NULL DEFAULT NULL COMMENT '时间窗口结束',
`remark` VARCHAR(255) NULL DEFAULT NULL COMMENT '备注说明',
`status` ENUM('待启动','已执行','错过') NOT NULL DEFAULT '待启动' COMMENT '状态反馈',
`is_active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '启用状态',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_channel_type` (`channel_type`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='渠道新增计划表';