企业客户信息管理数据库

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

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

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

相关推荐
Flynt9 分钟前
axios 被投毒半年后,我把 npm 的"安全防线"实测了一遍:最信任的 SHA512 是安慰剂
前端·npm·node.js
excel1 小时前
Base62 和 Base64 有什么区别?
前端
风骏时光牛马2 小时前
大模型底层架构与AI源码深度剖析
前端
掘金挖土3 小时前
前端手摸手跑路之 AI 应用开发(九)
前端·后端
中文呀5 小时前
三维 GIS 离线缓存实战:逆向 CesiumOfflineCache,并亲手为它补上"自动更新"能力
前端
前进前进前进6 小时前
TRAE 全链路实战:做了一个警示牌一键生成器:纯 Canvas、单文件、零依赖
前端
小万7427 小时前
God‘s Eye View 深度解析:15 路公开信号 + CesiumJS 的浏览器级 OSINT 控制台,60 帧渲染的“真实间谍卫星模拟器”
前端
IT星宿7 小时前
浏览器标签页全是一个图标:我用名字哈希生成 favicon,让每个项目都有身份标识
前端
全栈项目管理程序猿7 小时前
ArcGIS JS 基础教程(32):体元系列 - VoxelSlice 体元切片
前端·javascript