0806
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"certification_types": [
|
||||
[
|
||||
6,
|
||||
"ISO14001认证"
|
||||
],
|
||||
[
|
||||
7,
|
||||
"ISO45001认证"
|
||||
],
|
||||
[
|
||||
5,
|
||||
"ISO9001认证"
|
||||
],
|
||||
[
|
||||
2,
|
||||
"专精特新企业"
|
||||
],
|
||||
[
|
||||
4,
|
||||
"制造业单项冠军"
|
||||
],
|
||||
[
|
||||
1,
|
||||
"国家高新技术企业"
|
||||
],
|
||||
[
|
||||
3,
|
||||
"瞪羚企业"
|
||||
],
|
||||
[
|
||||
8,
|
||||
"知识产权管理体系认证"
|
||||
]
|
||||
],
|
||||
"company_certifications": []
|
||||
}
|
||||
+4014
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,140 @@
|
||||
-- ============================================================
|
||||
-- SuperLink Web 后台管理系统 - v1.0.16 数据库结构变更脚本
|
||||
-- 对应需求文档《修改说明》:
|
||||
-- 1) 所有数据表时间字段调整为"年-月-日"(DATETIME -> DATE)
|
||||
-- 2) companies / persons 增加 source_channel、source_detail
|
||||
-- 3) social_accounts 增加 is_defult(1常用 / 0不常用备用)
|
||||
-- 4) 数据字典:certification_types 改名为 date_dict_certificate,
|
||||
-- 新增 date_dict_country / date_dict_area / date_dict_industry / source_channels
|
||||
-- 字典数据见:sql/dict_seed.sql(由官方 Excel 生成,需一并执行)
|
||||
-- 执行方式:先执行本文件,再执行 sql/dict_seed.sql。
|
||||
-- 提示:原库业务表(companies/persons/social_accounts 等)不在仓库中,
|
||||
-- 时间字段批量转换建议使用 tools/migrate_time_to_date.php 自动处理。
|
||||
-- ============================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 1) 时间字段调整(DATETIME -> DATE)
|
||||
-- 以下为各业务表已知时间字段的手工 ALTER 示例(请按实际库结构核对列名):
|
||||
-- companies.created_at / updated_at / established_date
|
||||
-- persons.created_at / updated_at
|
||||
-- social_accounts.created_at
|
||||
-- company_needs.created_at
|
||||
-- company_documents.publish_date / created_at
|
||||
-- company_certifications.issue_date / expiry_date / created_at
|
||||
-- company_relations.established_date / created_at
|
||||
-- person_work_experiences.start_date / end_date / created_at
|
||||
-- company_products.created_at
|
||||
-- media_commercial_attributes.created_at
|
||||
-- channels.created_at / updated_at
|
||||
-- system_users.last_login_time / created_at / updated_at
|
||||
-- system_roles.created_at
|
||||
-- system_logs.created_at
|
||||
--
|
||||
-- 示例(MySQL 8.0.13+ 支持 DEFAULT (CURRENT_DATE);5.7 请去掉默认值改为 NULL 后由程序写入):
|
||||
-- ALTER TABLE companies MODIFY COLUMN created_at DATE NULL DEFAULT (CURRENT_DATE);
|
||||
-- ALTER TABLE companies MODIFY COLUMN updated_at DATE NULL DEFAULT (CURRENT_DATE);
|
||||
-- 批量转换推荐直接运行:php tools/migrate_time_to_date.php (自动遍历 information_schema)
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 2) companies / persons 增加来源字段
|
||||
-- ------------------------------------------------------------
|
||||
ALTER TABLE `companies`
|
||||
ADD COLUMN `source_channel` VARCHAR(50) NULL DEFAULT NULL COMMENT '来源渠道(字典:source_channels,如展会/SNS/竞价广告)' AFTER `website`,
|
||||
ADD COLUMN `source_detail` VARCHAR(255) NULL DEFAULT NULL COMMENT '来源详情(如:华南工博会)' AFTER `source_channel`;
|
||||
|
||||
ALTER TABLE `persons`
|
||||
ADD COLUMN `source_channel` VARCHAR(50) NULL DEFAULT NULL COMMENT '来源渠道(字典:source_channels)' AFTER `work_location`,
|
||||
ADD COLUMN `source_detail` VARCHAR(255) NULL DEFAULT NULL COMMENT '来源详情' AFTER `source_channel`;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 3) social_accounts 增加 is_defult(1常用 / 0不常用、备用)
|
||||
-- ------------------------------------------------------------
|
||||
ALTER TABLE `social_accounts`
|
||||
ADD COLUMN `is_defult` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否常用:1常用,0不常用/备用' AFTER `is_primary`;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 4) 数据字典
|
||||
-- ------------------------------------------------------------
|
||||
-- 4.1 certification_types 改名为 date_dict_certificate(保留原数据,随后用 dict_seed.sql 覆盖为官方枚举)
|
||||
RENAME TABLE `certification_types` TO `date_dict_certificate`;
|
||||
ALTER TABLE `date_dict_certificate`
|
||||
ADD COLUMN `code` VARCHAR(50) NULL DEFAULT NULL COMMENT '证书类型枚举编码' AFTER `id`;
|
||||
|
||||
-- 4.2 国家地区编码字典
|
||||
DROP TABLE IF EXISTS `date_dict_country`;
|
||||
CREATE TABLE `date_dict_country` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`code` VARCHAR(50) NOT 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='国家地区编码字典';
|
||||
|
||||
-- 4.3 行政区划编码字典(省/市/区县三级,parent_code 关联)
|
||||
DROP TABLE IF EXISTS `date_dict_area`;
|
||||
CREATE TABLE `date_dict_area` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`code` VARCHAR(50) NOT NULL COMMENT '行政区划编码',
|
||||
`name` VARCHAR(100) NOT NULL COMMENT '行政区划名称',
|
||||
`parent_code` VARCHAR(50) DEFAULT NULL COMMENT '上级行政区划编码(省级为NULL)',
|
||||
`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_parent` (`parent_code`),
|
||||
KEY `idx_name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='行政区划编码字典';
|
||||
|
||||
-- 4.4 招标行业分类字典(parent_code 预留大类/细分层级)
|
||||
DROP TABLE IF EXISTS `date_dict_industry`;
|
||||
CREATE TABLE `date_dict_industry` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`code` VARCHAR(50) NOT NULL COMMENT '行业编码',
|
||||
`name` VARCHAR(100) NOT NULL COMMENT '行业名称',
|
||||
`parent_code` VARCHAR(50) DEFAULT NULL COMMENT '上级行业编码(大类为NULL)',
|
||||
`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_parent` (`parent_code`),
|
||||
KEY `idx_name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='招标行业分类字典';
|
||||
|
||||
-- 4.5 证书类型枚举字典
|
||||
ALTER TABLE `date_dict_certificate`
|
||||
MODIFY COLUMN `code` VARCHAR(50) NULL DEFAULT NULL COMMENT '证书类型枚举编码',
|
||||
ADD UNIQUE KEY `uk_code` (`code`);
|
||||
|
||||
-- 4.6 来源渠道字典(source_channel 枚举,参考 certification_types 结构)
|
||||
DROP TABLE IF EXISTS `source_channels`;
|
||||
CREATE TABLE `source_channels` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`name` VARCHAR(50) 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_name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='来源渠道字典';
|
||||
|
||||
-- 来源渠道默认数据
|
||||
INSERT INTO `source_channels` (`name`, `sort_order`) VALUES
|
||||
('展会', 1), ('SNS/社交媒体', 2), ('竞价广告', 3), ('搜索引擎自然流量', 4),
|
||||
('行业媒体/门户', 5), ('转介绍', 6), ('电话销售', 7), ('邮件营销', 8),
|
||||
('地推', 9), ('代理商/渠道', 10), ('官网咨询', 11), ('其他', 99);
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 字典数据(date_dict_country / date_dict_area / date_dict_industry / date_dict_certificate)
|
||||
-- 请执行:sql/dict_seed.sql
|
||||
-- ------------------------------------------------------------
|
||||
|
||||
-- ============================================================
|
||||
-- 附:时间字段批量转换工具使用说明
|
||||
-- 在部署机上执行:php tools/migrate_time_to_date.php
|
||||
-- 该脚本会自动遍历 mysuperlink 库中所有 DATETIME/TIMESTAMP 字段并转换为 DATE,
|
||||
-- 即满足"所有数据表时间字段调整为年-月-日"的需求,无需手工逐个核对。
|
||||
-- ============================================================
|
||||
+94
-11
@@ -1,11 +1,15 @@
|
||||
-- ============================================================
|
||||
-- SuperLink Web 后台管理系统 - 新增系统表
|
||||
-- SuperLink Web 后台管理系统 - 系统表(含 v1.0.16 数据字典表)
|
||||
-- 数据库:mysuperlink (utf8mb4 / utf8mb4_unicode_ci)
|
||||
-- 说明:
|
||||
-- 1) 原库已有14张业务表(companies/persons/social_accounts/company_needs 等),本文件不改动它们。
|
||||
-- 2) 本文件新增文档要求的 3 张系统表:system_users / system_roles / system_logs(含默认数据)。
|
||||
-- 3) 另新增 1 张业务表 channels(渠道管理模块需要,原14张表中没有渠道表),
|
||||
-- 如不需要渠道模块可直接跳过该段。
|
||||
-- 2) 本文件定义系统表:system_users / system_roles / system_logs / channels,
|
||||
-- 以及 v1.0.16 新增的数据字典表:date_dict_country / date_dict_area /
|
||||
-- date_dict_industry / date_dict_certificate / source_channels。
|
||||
-- 3) 按需求文档:所有时间字段调整为"年-月-日"(DATE 类型,不保留时分秒)。
|
||||
-- 注意:DATE 默认值使用表达式 DEFAULT (CURRENT_DATE),需 MySQL 8.0.13+;
|
||||
-- 若为 MySQL 5.7,请将时间字段保留为 DATETIME 或由应用层写入日期。
|
||||
-- 4) 数据字典的完整数据由官方 Excel 生成,见 sql/dict_seed.sql(建表后执行)。
|
||||
-- 执行方式:Navicat / phpMyAdmin / mysql 命令行执行本文件即可(可重复执行前请先删除旧表)。
|
||||
-- ============================================================
|
||||
|
||||
@@ -22,10 +26,10 @@ CREATE TABLE `system_users` (
|
||||
`real_name` VARCHAR(50) DEFAULT NULL COMMENT '真实姓名',
|
||||
`role_id` INT UNSIGNED NOT NULL COMMENT '角色ID',
|
||||
`is_active` TINYINT(1) UNSIGNED DEFAULT 1 COMMENT '启用状态(0禁用,1启用)',
|
||||
`last_login_time` DATETIME DEFAULT NULL COMMENT '最后登录时间',
|
||||
`last_login_time` DATE DEFAULT NULL COMMENT '最后登录时间(年-月-日)',
|
||||
`last_login_ip` VARCHAR(50) DEFAULT NULL COMMENT '最后登录IP',
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`created_at` DATE DEFAULT (CURRENT_DATE) COMMENT '创建时间(年-月-日)',
|
||||
`updated_at` DATE DEFAULT (CURRENT_DATE) COMMENT '更新时间(年-月-日)',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_username` (`username`),
|
||||
KEY `idx_role_id` (`role_id`)
|
||||
@@ -40,7 +44,7 @@ CREATE TABLE `system_roles` (
|
||||
`role_name` VARCHAR(50) NOT NULL COMMENT '角色名称',
|
||||
`permissions` JSON NOT NULL COMMENT '权限列表(菜单标识数组)',
|
||||
`is_active` TINYINT(1) UNSIGNED DEFAULT 1 COMMENT '启用状态',
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`created_at` DATE DEFAULT (CURRENT_DATE) COMMENT '创建时间(年-月-日)',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_role_name` (`role_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统角色表';
|
||||
@@ -59,7 +63,7 @@ CREATE TABLE `system_logs` (
|
||||
`target_id` INT UNSIGNED DEFAULT NULL COMMENT '操作对象记录ID',
|
||||
`content` JSON DEFAULT NULL COMMENT '操作内容(变更前后数据)',
|
||||
`ip` VARCHAR(50) DEFAULT NULL COMMENT '客户端IP',
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
|
||||
`created_at` DATE DEFAULT (CURRENT_DATE) COMMENT '操作时间(年-月-日)',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user_id` (`user_id`),
|
||||
KEY `idx_action` (`action`),
|
||||
@@ -97,9 +101,88 @@ CREATE TABLE `channels` (
|
||||
`efficiency_score` DECIMAL(5,2) DEFAULT 0 COMMENT '效率评分(0-100)',
|
||||
`remark` VARCHAR(255) DEFAULT NULL COMMENT '备注',
|
||||
`is_active` TINYINT(1) UNSIGNED DEFAULT 1 COMMENT '启用状态',
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`created_at` DATE DEFAULT (CURRENT_DATE) COMMENT '创建时间(年-月-日)',
|
||||
`updated_at` DATE DEFAULT (CURRENT_DATE) COMMENT '更新时间(年-月-日)',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_channel_type` (`channel_type`),
|
||||
KEY `idx_is_active` (`is_active`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='渠道管理表';
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 6. v1.0.16 数据字典表
|
||||
-- ------------------------------------------------------------
|
||||
-- 6.1 国家地区编码字典
|
||||
DROP TABLE IF EXISTS `date_dict_country`;
|
||||
CREATE TABLE `date_dict_country` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`code` VARCHAR(50) NOT 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='国家地区编码字典';
|
||||
|
||||
-- 6.2 行政区划编码字典(省/市/区县三级,parent_code 关联)
|
||||
DROP TABLE IF EXISTS `date_dict_area`;
|
||||
CREATE TABLE `date_dict_area` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`code` VARCHAR(50) NOT NULL COMMENT '行政区划编码',
|
||||
`name` VARCHAR(100) NOT NULL COMMENT '行政区划名称',
|
||||
`parent_code` VARCHAR(50) DEFAULT NULL COMMENT '上级行政区划编码(省级为NULL)',
|
||||
`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_parent` (`parent_code`),
|
||||
KEY `idx_name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='行政区划编码字典';
|
||||
|
||||
-- 6.3 招标行业分类字典(parent_code 预留大类/细分层级)
|
||||
DROP TABLE IF EXISTS `date_dict_industry`;
|
||||
CREATE TABLE `date_dict_industry` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`code` VARCHAR(50) NOT NULL COMMENT '行业编码',
|
||||
`name` VARCHAR(100) NOT NULL COMMENT '行业名称',
|
||||
`parent_code` VARCHAR(50) DEFAULT NULL COMMENT '上级行业编码(大类为NULL)',
|
||||
`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_parent` (`parent_code`),
|
||||
KEY `idx_name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='招标行业分类字典';
|
||||
|
||||
-- 6.4 证书类型枚举字典(原 certification_types 表改名而来;新装环境在此创建)
|
||||
DROP TABLE IF EXISTS `date_dict_certificate`;
|
||||
CREATE TABLE `date_dict_certificate` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`code` VARCHAR(50) 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='证书类型枚举字典';
|
||||
|
||||
-- 6.5 来源渠道字典(source_channel 枚举)
|
||||
DROP TABLE IF EXISTS `source_channels`;
|
||||
CREATE TABLE `source_channels` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`name` VARCHAR(50) 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_name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='来源渠道字典';
|
||||
|
||||
-- 6.6 来源渠道默认数据
|
||||
INSERT INTO `source_channels` (`name`, `sort_order`) VALUES
|
||||
('展会', 1), ('SNS/社交媒体', 2), ('竞价广告', 3), ('搜索引擎自然流量', 4),
|
||||
('行业媒体/门户', 5), ('转介绍', 6), ('电话销售', 7), ('邮件营销', 8),
|
||||
('地推', 9), ('代理商/渠道', 10), ('官网咨询', 11), ('其他', 99);
|
||||
|
||||
-- 6.7 数据字典完整数据(国家/行政区划/行业/证书)由官方 Excel 生成:
|
||||
-- 请执行 sql/dict_seed.sql
|
||||
|
||||
Reference in New Issue
Block a user