企业客户信息管理数据库

企业客户信息管理数据库设计文档

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) 联系电话
email 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. 设计说明

  1. 字符集统一使用utf8mb4,支持中文、特殊符号与emoji,避免乱码问题。
  2. 使用InnoDB引擎,支持事务、外键约束,保障数据关联一致性。外键设置ON DELETE CASCADE,客户删除时自动级联删除跟进记录。
  3. 针对查询高频字段建立索引,如客户名称、状态、客户ID,提升查询效率;避免过度索引导致写入性能下降。
  4. 时间字段采用数据库自动填充,减少应用层代码处理,统一时间格式。
  5. 客户等级、合作状态使用tinyint数字枚举存储,相比字符串节省存储空间。业务层可做枚举映射展示文本。

5. 使用注意事项

  1. 生产环境建议关闭外键约束,由业务代码维护数据关联,提升并发性能。
  2. 手机号、邮箱等敏感信息,上线需做数据脱敏,禁止明文对外输出。
  3. 定期备份数据库,对客户信息做权限管控,不同业务员仅可查看负责客户数据。
  4. 新增业务字段时,优先评估业务扩展性,不随意修改已有字段类型。

海量精选技术文档和实战案例持续更新,敬请关注【风骏时光少年】

相关推荐
红尘散仙6 小时前
谁说终端只能敲键盘?我用 Rust 给小说阅读器加上了鼠标
前端·后端·rust
陈随易7 小时前
C++26 草案被否,二十八年来头一回
前端·后端·程序员
ZhengEnCi7 小时前
Agent 工具怎么折叠海量输出才「爽」:Trae、Claude Code 的渐进式披露设计原理
前端·agent
IT_陈寒11 小时前
Redis内存暴涨,没想到是AOF重写捣的鬼
前端·人工智能·后端
ikoala11 小时前
让 Codex 自己查账:一个省 token 的小技巧
前端·后端·ai编程
ikoala11 小时前
AI 写页面像说明书,修 Bug 像贴膏药?把这两句话写进 AGENTS.md
前端·javascript·ai编程
去伪存真13 小时前
AI Agent Harness 深度测评与技术选型实战
前端·agent
FRing0316 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
疯华整猫19 小时前
被杀掉之后:我把 Android 的「唤起 + 常驻」重做了一遍
前端·面试·架构
IT_陈寒21 小时前
Java开发实战:从入门到精通
前端·人工智能·后端