企业客户信息管理数据库

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

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. 新增业务字段时,优先评估业务扩展性,不随意修改已有字段类型。

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

相关推荐
paopaokaka_luck1 小时前
个人综合管理小程序(echarts数据看板、健康数据记录与趋势查看、目标拆解和进度管理、日程待办与番茄钟、习惯打卡、收支统计、个人生活记录、跨模块智能提醒)
前端·javascript·spring·小程序·数据分析·echarts·生活
霸道流氓气质1 小时前
Graph Studio Web IDE 深度实战:可视化编排、断点调试与生产级运维全指南
运维·前端·ide
福兮说9 小时前
前端下载大文件,点了按钮半天没反应:fetch + blob 的三个问题和三种替代写法
前端·javascript·性能优化·文件下载
GreenTea9 小时前
我把 Agent 的 while 循环拆掉了:一种你可能没想到的 Agent 架构
前端·后端·架构
科技观察哨10 小时前
六足平台选型与纳米定位系统集成:HEB-640六自由度位移台在半导体光刻对准中的参数边界与国产替代评估
前端·人工智能
niucloud-admin10 小时前
JAVA V6 多商户商城 开发文档——web前端
前端
颜进强10 小时前
16 · NestJS LifecycleEvents 生命周期事件:五个钩子、三条边界,和 rag-server 的优雅停机
前端·后端·ai编程
今年下半年12 小时前
【VUE】整合腾讯地图、自定义区域边界、村委名称及资产统计(放大显示资产点位)
前端·javascript·vue.js