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

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. 定期优化维护
http://www.xdnf.cn/news/9490.html

相关文章:

  • 【大模型原理与技术-毛玉仁】第四章 参数高效微调
  • 基本面高股息策略
  • RabbitMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 选型指南(二)
  • c++结构化绑定
  • Python应用while循环猜数字
  • webpack的安装
  • 签约!京东云与契约锁达成战略合作,携手共推全程数智化解决方案
  • 【计算机网络】IPv6和NAT网络地址转换
  • 【Prometheus+Grafana实战:搭建监控系统(含告警配置)】
  • Vue开发系列——Vue中常见实现区别及Vue.js 模板编译原理
  • EC800GCN 华系列 DTU 开发板介绍
  • 基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
  • 家政小程序开发,开启便捷生活新篇章
  • Visual Studio 的下载安装
  • 常用 Linux 命令---服务器开发和运维相关命令
  • JVM内存溢出:诊断处理与预防全攻略
  • 【pycharm】如何连接远程仓库进行版本管理(应用版本)
  • ModbusTcp协议
  • LiveQing 视频点播流媒体 RTMP 推流服务功能:搭建 RTMP 视频流媒体服务详细指南
  • xcode卡死问题,无论打开什么程序xcode总是在转菊花,重启电脑,卸载重装都不行
  • 设计模式之单例模式
  • MySQL MVCC(多版本并发控制)详解
  • 使用 Frida 增强 FART:实现更强大的 Android 脱壳能力
  • 逛网站看到个场景题,如何防止重复下单
  • react diff 算法
  • Uniapp+UView+Uni-star打包小程序极简方案
  • 【Fifty Project - D32】
  • 工业5.0视域下的医疗AI行业未来发展方向研究
  • TCXO温度补偿振荡器的概述和补偿方法
  • WES(二)——数据预处理