119 lines
7.0 KiB
SQL
119 lines
7.0 KiB
SQL
-- ============================================================
|
||
-- 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='渠道新增计划表';
|