当前位置: 首页 > news >正文

CRM系统的数据库结构详细设计

  1. 基础管理模块表设计
-- 用户表
CREATE TABLE sys_user (id BIGINT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50) NOT NULL COMMENT '用户名',password VARCHAR(100) NOT NULL COMMENT '密码',real_name VARCHAR(50) COMMENT '真实姓名',email VARCHAR(100) COMMENT '邮箱',mobile VARCHAR(20) COMMENT '手机号',avatar VARCHAR(200) COMMENT '头像',status TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',dept_id BIGINT COMMENT '部门ID',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,UNIQUE KEY uk_username (username)
);-- 角色表
CREATE TABLE sys_role (id BIGINT PRIMARY KEY AUTO_INCREMENT,role_name VARCHAR(50) NOT NULL COMMENT '角色名称',role_code VARCHAR(50) NOT NULL COMMENT '角色编码',description VARCHAR(200) COMMENT '角色描述',status TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);-- 权限表
CREATE TABLE sys_permission (id BIGINT PRIMARY KEY AUTO_INCREMENT,parent_id BIGINT COMMENT '父权限ID',name VARCHAR(50) NOT NULL COMMENT '权限名称',permission_code VARCHAR(50) NOT NULL COMMENT '权限编码',type TINYINT COMMENT '类型:1-菜单,2-按钮',path VARCHAR(200) COMMENT '路径',component VARCHAR(200) COMMENT '组件',icon VARCHAR(50) COMMENT '图标',sort INT DEFAULT 0 COMMENT '排序',status TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);-- 部门表
CREATE TABLE sys_department (id BIGINT PRIMARY KEY AUTO_INCREMENT,parent_id BIGINT COMMENT '父部门ID',dept_name VARCHAR(50) NOT NULL COMMENT '部门名称',dept_code VARCHAR(50) NOT NULL COMMENT '部门编码',leader VARCHAR(50) COMMENT '负责人',phone VARCHAR(20) COMMENT '联系电话',email VARCHAR(100) COMMENT '邮箱',status TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
  1. 客户管理模块表设计
-- 客户表
CREATE TABLE crm_customer (id BIGINT PRIMARY KEY AUTO_INCREMENT,customer_name VARCHAR(100) NOT NULL COMMENT '客户名称',customer_code VARCHAR(50) COMMENT '客户编码',customer_type TINYINT COMMENT '客户类型:1-个人,2-企业',industry VARCHAR(50) COMMENT '所属行业',source VARCHAR(50) COMMENT '客户来源',level TINYINT COMMENT '客户等级:1-普通,2-重要,3-VIP',status TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',address VARCHAR(200) COMMENT '地址',website VARCHAR(200) COMMENT '网站',description TEXT COMMENT '描述',owner_id BIGINT COMMENT '负责人ID',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);-- 联系人表
CREATE TABLE crm_contact (id BIGINT PRIMARY KEY AUTO_INCREMENT,customer_id BIGINT NOT NULL COMMENT '客户ID',name VARCHAR(50) NOT NULL COMMENT '联系人姓名',position VARCHAR(50) COMMENT '职位',mobile VARCHAR(20) COMMENT '手机号',email VARCHAR(100) COMMENT '邮箱',is_primary TINYINT DEFAULT 0 COMMENT '是否主要联系人:0-否,1-是',status TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);-- 客户标签表
CREATE TABLE crm_customer_tag (id BIGINT PRIMARY KEY AUTO_INCREMENT,customer_id BIGINT NOT NULL COMMENT '客户ID',tag_name VARCHAR(50) NOT NULL COMMENT '标签名称',created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
  1. 销售管理模块表设计
-- 商机表
CREATE TABLE crm_opportunity (id BIGINT PRIMARY KEY AUTO_INCREMENT,customer_id BIGINT NOT NULL COMMENT '客户ID',opportunity_name VARCHAR(100) NOT NULL COMMENT '商机名称',amount DECIMAL(15,2) COMMENT '商机金额',expected_date DATE COMMENT '预计成交日期',stage TINYINT COMMENT '商机阶段:1-初步接触,2-需求确认,3-方案报价,4-商务谈判,5-赢单,6-输单',probability INT COMMENT '成交概率',owner_id BIGINT COMMENT '负责人ID',description TEXT COMMENT '描述',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);-- 报价表
CREATE TABLE crm_quotation (id BIGINT PRIMARY KEY AUTO_INCREMENT,opportunity_id BIGINT NOT NULL COMMENT '商机ID',quotation_no VARCHAR(50) NOT NULL COMMENT '报价单号',amount DECIMAL(15,2) NOT NULL COMMENT '报价金额',valid_date DATE COMMENT '有效期',status TINYINT COMMENT '状态:1-草稿,2-已提交,3-已审核,4-已拒绝',created_by BIGINT COMMENT '创建人ID',approved_by BIGINT COMMENT '审核人ID',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);-- 合同表
CREATE TABLE crm_contract (id BIGINT PRIMARY KEY AUTO_INCREMENT,customer_id BIGINT NOT NULL COMMENT '客户ID',contract_no VARCHAR(50) NOT NULL COMMENT '合同编号',contract_name VARCHAR(100) NOT NULL COMMENT '合同名称',amount DECIMAL(15,2) NOT NULL COMMENT '合同金额',start_date DATE COMMENT '开始日期',end_date DATE COMMENT '结束日期',status TINYINT COMMENT '状态:1-草稿,2-已提交,3-已审核,4-已生效,5-已完成,6-已终止',created_by BIGINT COMMENT '创建人ID',approved_by BIGINT COMMENT '审核人ID',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
  1. 客户服务模块表设计
-- 工单表
CREATE TABLE crm_ticket (id BIGINT PRIMARY KEY AUTO_INCREMENT,customer_id BIGINT NOT NULL COMMENT '客户ID',ticket_no VARCHAR(50) NOT NULL COMMENT '工单编号',title VARCHAR(200) NOT NULL COMMENT '工单标题',type TINYINT COMMENT '工单类型:1-咨询,2-投诉,3-建议,4-其他',priority TINYINT COMMENT '优先级:1-低,2-中,3-高,4-紧急',status TINYINT COMMENT '状态:1-待处理,2-处理中,3-已完成,4-已关闭',content TEXT COMMENT '工单内容',created_by BIGINT COMMENT '创建人ID',assigned_to BIGINT COMMENT '处理人ID',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);-- 知识库表
CREATE TABLE crm_knowledge (id BIGINT PRIMARY KEY AUTO_INCREMENT,title VARCHAR(200) NOT NULL COMMENT '标题',category VARCHAR(50) COMMENT '分类',content TEXT COMMENT '内容',tags VARCHAR(200) COMMENT '标签',view_count INT DEFAULT 0 COMMENT '浏览次数',created_by BIGINT COMMENT '创建人ID',status TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
  1. 市场营销模块表设计
-- 营销活动表
CREATE TABLE crm_campaign (id BIGINT PRIMARY KEY AUTO_INCREMENT,campaign_name VARCHAR(100) NOT NULL COMMENT '活动名称',type TINYINT COMMENT '活动类型:1-线上,2-线下',start_date DATE COMMENT '开始日期',end_date DATE COMMENT '结束日期',budget DECIMAL(15,2) COMMENT '预算',status TINYINT COMMENT '状态:1-计划中,2-进行中,3-已完成,4-已取消',description TEXT COMMENT '描述',created_by BIGINT COMMENT '创建人ID',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);-- 营销目标客户表
CREATE TABLE crm_campaign_target (id BIGINT PRIMARY KEY AUTO_INCREMENT,campaign_id BIGINT NOT NULL COMMENT '活动ID',customer_id BIGINT NOT NULL COMMENT '客户ID',status TINYINT COMMENT '状态:1-待联系,2-已联系,3-已转化,4-已放弃',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
  1. 数据分析模块表设计
-- 销售统计表
CREATE TABLE crm_sales_statistics (id BIGINT PRIMARY KEY AUTO_INCREMENT,stat_date DATE NOT NULL COMMENT '统计日期',user_id BIGINT NOT NULL COMMENT '用户ID',new_customers INT DEFAULT 0 COMMENT '新增客户数',new_opportunities INT DEFAULT 0 COMMENT '新增商机数',won_opportunities INT DEFAULT 0 COMMENT '赢单数',sales_amount DECIMAL(15,2) DEFAULT 0 COMMENT '销售金额',created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);-- 客户分析表
CREATE TABLE crm_customer_analysis (id BIGINT PRIMARY KEY AUTO_INCREMENT,customer_id BIGINT NOT NULL COMMENT '客户ID',total_orders INT DEFAULT 0 COMMENT '总订单数',total_amount DECIMAL(15,2) DEFAULT 0 COMMENT '总消费金额',last_order_date DATE COMMENT '最后订单日期',customer_value TINYINT COMMENT '客户价值:1-低,2-中,3-高',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
  1. 工作流模块表设计
-- 工作流定义表
CREATE TABLE crm_workflow (id BIGINT PRIMARY KEY AUTO_INCREMENT,workflow_name VARCHAR(100) NOT NULL COMMENT '工作流名称',workflow_type VARCHAR(50) NOT NULL COMMENT '工作流类型',status TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',created_by BIGINT COMMENT '创建人ID',created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);-- 工作流节点表
CREATE TABLE crm_workflow_node (id BIGINT PRIMARY KEY AUTO_INCREMENT,workflow_id BIGINT NOT NULL COMMENT '工作流ID',node_name VARCHAR(100) NOT NULL COMMENT '节点名称',node_type VARCHAR(50) NOT NULL COMMENT '节点类型',approver_type TINYINT COMMENT '审批人类型:1-指定人,2-角色,3-部门',approver_id BIGINT COMMENT '审批人ID',created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
  1. 系统日志表设计
-- 操作日志表
CREATE TABLE sys_operation_log (id BIGINT PRIMARY KEY AUTO_INCREMENT,user_id BIGINT COMMENT '用户ID',module VARCHAR(50) COMMENT '模块',operation VARCHAR(50) COMMENT '操作',method VARCHAR(100) COMMENT '方法',params TEXT COMMENT '参数',ip VARCHAR(50) COMMENT 'IP地址',status TINYINT COMMENT '状态:0-失败,1-成功',error_msg TEXT COMMENT '错误信息',created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);-- 登录日志表
CREATE TABLE sys_login_log (id BIGINT PRIMARY KEY AUTO_INCREMENT,user_id BIGINT COMMENT '用户ID',username VARCHAR(50) COMMENT '用户名',ip VARCHAR(50) COMMENT 'IP地址',location VARCHAR(100) COMMENT '登录地点',browser VARCHAR(50) COMMENT '浏览器',os VARCHAR(50) COMMENT '操作系统',status TINYINT COMMENT '状态:0-失败,1-成功',msg VARCHAR(200) COMMENT '提示信息',created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

数据库设计建议:

  1. 索引优化
  • 为常用查询字段创建索引
  • 避免过多索引影响写入性能
  • 定期维护索引
  1. 字段设计
  • 使用合适的字段类型
  • 设置适当的字段长度
  • 添加必要的约束
  1. 表关系
  • 合理设计外键关系
  • 注意级联操作
  • 考虑数据完整性
  1. 性能优化
  • 分表策略
  • 读写分离
  • 缓存策略
  1. 安全考虑
  • 敏感数据加密
  • 访问权限控制
  • 数据备份策略

这个数据库设计涵盖了CRM系统的主要功能模块,可以根据实际需求进行调整和扩展。建议在实施过程中:

  1. 先创建核心表
  2. 逐步添加功能表
  3. 注意数据迁移
  4. 做好版本控制
  5. 定期优化维护

相关文章:

  • js中common.js和ECMAScript.js区别
  • 【华为开发者空间 x DeepSeek】服务器运行Ollama并在本地调用
  • 【计算机网络】4网络层①
  • Springboot 项目一启动就获取HttpSession
  • React 泛型组件:用TS来打造灵活的组件。
  • 新能源汽车霍尔线束介绍
  • 深入解析 Tomcat 线程管理机制:从设计思想到性能调优
  • WPS自动换行
  • VR 汽车:引领生产与设计的革命性飞跃​
  • RISC-V 开发板 MUSE Pi Pro 搭建 Spacengine AI模型部署环境
  • 在部署了一台mysql5.7的机器上部署mysql8.0.35
  • 湖北理元理律师事务所:债务优化中的“生活锚点”设计
  • 生成式引擎优化(GEO):构建AI时代的内容霸权
  • 解决“无法打开或关闭Windows功能”问题
  • Prometheus + Grafana 监控常用服务
  • 在 CAD C# 二次开发中,Clipper2、CGAL 和 NTS(NetTopologySuite)对比
  • C#学习26天:内存优化的几种方法
  • 华为OD机试真题——书籍叠放(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 解码 Skate:打造链间可组合应用栈,构建跨越虚拟机的无状态未来
  • 欢乐熊大话蓝牙知识12:用 BLE 打造家庭 IoT 网络的三种方式
  • 怎么创建网站根目录/怎么安装百度
  • 网站开发好公司/长春网站建设 4435
  • 宝塔搭建本地网站/手机如何制作一个网页链接
  • 网站 虚拟目录/什么平台可以免费发广告
  • 西安网站优化/seo去哪学
  • 福建网站开发公司/seo的全称是什么