企业客户信息管理数据库设计文档
1. 概述
本文档为企业客户信息管理数据库设计方案,用于存储企业客户基础资料、联系信息、客户等级、合作状态等业务数据,支撑客户查询、跟进记录、客户分类统计等业务场景。数据库采用MySQL,通过合理的表结构设计,保证数据完整性,降低数据冗余,满足中小型企业客户管理业务需求。
2. 数据库设计
2.1 数据库名称
enterprise_customer_db
2.2 表结构设计
2.2.1 客户信息表 customer
存储客户基础核心信息。
| 字段名 | 数据类型 | 约束 | 说明 |
|---|---|---|---|
| customer_id | bigint | PRIMARY KEY AUTO_INCREMENT | 客户唯一ID |
| customer_name | varchar(100) | NOT NULL | 客户企业名称 |
| contact_person | varchar(50) | 对接联系人 | |
| phone | varchar(20) | 联系电话 | |
| varchar(100) | 邮箱 | ||
| customer_level | tinyint | DEFAULT 1 | 客户等级:1普通,2重要,3VIP |
| status | tinyint | DEFAULT 0 | 合作状态:0未合作,1合作中,2已终止 |
| address | varchar(255) | 企业地址 | |
| create_time | datetime | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
2.2.2 客户跟进记录表 customer_follow
记录业务员每次客户跟进内容,关联客户ID。
| 字段名 | 数据类型 | 约束 | 说明 |
|---|---|---|---|
| follow_id | bigint | PRIMARY KEY AUTO_INCREMENT | 跟进记录ID |
| customer_id | bigint | NOT NULL | 关联客户ID |
| operator | varchar(50) | NOT NULL | 操作业务员 |
| follow_content | text | 跟进详情 | |
| follow_time | datetime | DEFAULT CURRENT_TIMESTAMP | 跟进时间 |
3. SQL建表代码演示
sql
-- 创建数据库
CREATE DATABASE IF NOT EXISTS enterprise_customer_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE enterprise_customer_db;
-- 创建客户信息表
CREATE TABLE IF NOT EXISTS customer (
customer_id BIGINT AUTO_INCREMENT COMMENT '客户ID',
customer_name VARCHAR(100) NOT NULL COMMENT '客户企业名称',
contact_person VARCHAR(50) COMMENT '联系人',
phone VARCHAR(20) COMMENT '联系电话',
email VARCHAR(100) COMMENT '邮箱',
customer_level TINYINT DEFAULT 1 COMMENT '客户等级',
status TINYINT DEFAULT 0 COMMENT '合作状态',
address VARCHAR(255) COMMENT '企业地址',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (customer_id),
INDEX idx_customer_name (customer_name),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户信息表';
-- 创建客户跟进记录表
CREATE TABLE IF NOT EXISTS customer_follow (
follow_id BIGINT AUTO_INCREMENT COMMENT '跟进记录ID',
customer_id BIGINT NOT NULL COMMENT '客户ID',
operator VARCHAR(50) NOT NULL COMMENT '业务员',
follow_content TEXT COMMENT '跟进内容',
follow_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '跟进时间',
PRIMARY KEY (follow_id),
INDEX idx_customer_id (customer_id),
CONSTRAINT fk_follow_customer FOREIGN KEY (customer_id) REFERENCES customer(customer_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户跟进记录表';
-- 插入测试数据
INSERT INTO customer(customer_name, contact_person, phone, customer_level, status)
VALUES ('科创信息技术有限公司', '张经理', '13800138000', 2, 1);
INSERT INTO customer_follow(customer_id, operator, follow_content)
VALUES (1, '李明', '沟通年度软件采购方案,预计下月签订合同');
-- 查询客户及跟进记录联表示例
SELECT c.customer_id, c.customer_name, c.contact_person, f.follow_content, f.follow_time
FROM customer c
LEFT JOIN customer_follow f ON c.customer_id = f.customer_id
WHERE c.status = 1;
4. 设计说明
- 字符集统一使用
utf8mb4,支持中文、特殊符号与emoji,避免乱码问题。 - 使用InnoDB引擎,支持事务、外键约束,保障数据关联一致性。外键设置
ON DELETE CASCADE,客户删除时自动级联删除跟进记录。 - 针对查询高频字段建立索引,如客户名称、状态、客户ID,提升查询效率;避免过度索引导致写入性能下降。
- 时间字段采用数据库自动填充,减少应用层代码处理,统一时间格式。
- 客户等级、合作状态使用tinyint数字枚举存储,相比字符串节省存储空间。业务层可做枚举映射展示文本。
5. 使用注意事项
- 生产环境建议关闭外键约束,由业务代码维护数据关联,提升并发性能。
- 手机号、邮箱等敏感信息,上线需做数据脱敏,禁止明文对外输出。
- 定期备份数据库,对客户信息做权限管控,不同业务员仅可查看负责客户数据。
- 新增业务字段时,优先评估业务扩展性,不随意修改已有字段类型。
海量精选技术文档和实战案例持续更新,敬请关注【风骏时光少年】