企业客户信息管理数据库

67 阅读4分钟

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

1. 概述

本文档为企业客户信息管理数据库设计方案,用于存储企业客户基础资料、联系信息、客户等级、合作状态等业务数据,支撑客户查询、跟进记录、客户分类统计等业务场景。数据库采用MySQL,通过合理的表结构设计,保证数据完整性,降低数据冗余,满足中小型企业客户管理业务需求。

2. 数据库设计

2.1 数据库名称

enterprise_customer_db

2.2 表结构设计

2.2.1 客户信息表 customer

存储客户基础核心信息。

字段名数据类型约束说明
customer_idbigintPRIMARY KEY AUTO_INCREMENT客户唯一ID
customer_namevarchar(100)NOT NULL客户企业名称
contact_personvarchar(50)对接联系人
phonevarchar(20)联系电话
emailvarchar(100)邮箱
customer_leveltinyintDEFAULT 1客户等级:1普通,2重要,3VIP
statustinyintDEFAULT 0合作状态:0未合作,1合作中,2已终止
addressvarchar(255)企业地址
create_timedatetimeDEFAULT CURRENT_TIMESTAMP创建时间
update_timedatetimeDEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP更新时间
2.2.2 客户跟进记录表 customer_follow

记录业务员每次客户跟进内容,关联客户ID。

字段名数据类型约束说明
follow_idbigintPRIMARY KEY AUTO_INCREMENT跟进记录ID
customer_idbigintNOT NULL关联客户ID
operatorvarchar(50)NOT NULL操作业务员
follow_contenttext跟进详情
follow_timedatetimeDEFAULT CURRENT_TIMESTAMP跟进时间

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

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