Files
superlink/sql/system_tables.sql
T
nanguaboss 71c6e8d9c1 v1.0.10
2026-08-03 00:07:01 +08:00

106 lines
6.0 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.
-- ============================================================
-- SuperLink Web 后台管理系统 - 新增系统表
-- 数据库: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张表中没有渠道表),
-- 如不需要渠道模块可直接跳过该段。
-- 执行方式:Navicat / phpMyAdmin / mysql 命令行执行本文件即可(可重复执行前请先删除旧表)。
-- ============================================================
SET NAMES utf8mb4;
-- ------------------------------------------------------------
-- 1. 系统用户表
-- ------------------------------------------------------------
DROP TABLE IF EXISTS `system_users`;
CREATE TABLE `system_users` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`username` VARCHAR(50) NOT NULL COMMENT '登录账号',
`password` VARCHAR(64) NOT NULL COMMENT '密码(sha1加密)',
`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_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 '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`),
KEY `idx_role_id` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统用户表';
-- ------------------------------------------------------------
-- 2. 系统角色表
-- ------------------------------------------------------------
DROP TABLE IF EXISTS `system_roles`;
CREATE TABLE `system_roles` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`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 '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_role_name` (`role_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统角色表';
-- ------------------------------------------------------------
-- 3. 操作日志表
-- ------------------------------------------------------------
DROP TABLE IF EXISTS `system_logs`;
CREATE TABLE `system_logs` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '操作人ID',
`username` VARCHAR(50) NOT NULL COMMENT '操作人账号',
`action` VARCHAR(50) NOT NULL COMMENT '操作类型(login/logout/add/update/delete/import/export/audit/convert)',
`module` VARCHAR(50) NOT NULL COMMENT '操作模块(company/person/media/need/preliminary/system等)',
`target_table` VARCHAR(50) DEFAULT NULL COMMENT '操作对象表名',
`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 '操作时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_action` (`action`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志表';
-- ------------------------------------------------------------
-- 4. 默认数据(必须插入)
-- ------------------------------------------------------------
-- 超级管理员角色
INSERT INTO `system_roles` (`role_name`, `permissions`) VALUES
('超级管理员', '["dashboard","company","person","media","need","marketing","channel","document","preliminary","system","log"]');
-- 默认管理员账号(密码:admin123,sha1加密)
INSERT INTO `system_users` (`username`, `password`, `real_name`, `role_id`) VALUES
('admin', SHA1('admin123'), '系统管理员', 1);
-- 基础角色(可选,建议一并创建)
INSERT INTO `system_roles` (`role_name`, `permissions`) VALUES
('数据管理员', '["dashboard","company","person","media","document","preliminary"]'),
('业务专员', '["dashboard","need","marketing"]'),
('只读访客', '["dashboard"]');
-- ------------------------------------------------------------
-- 5. 渠道管理业务表(原14张表中无渠道表,渠道模块所需,按需创建)
-- ------------------------------------------------------------
DROP TABLE IF EXISTS `channels`;
CREATE TABLE `channels` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`channel_name` VARCHAR(100) NOT NULL COMMENT '渠道名称',
`channel_type` VARCHAR(50) DEFAULT NULL COMMENT '渠道类型(线上/线下/展会/转介绍等)',
`contact_person` VARCHAR(50) DEFAULT NULL COMMENT '联系人',
`contact_phone` VARCHAR(50) DEFAULT NULL COMMENT '联系电话',
`contact_email` VARCHAR(100) DEFAULT NULL COMMENT '联系邮箱',
`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 '更新时间',
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='渠道管理表';