文章
企业工商数据+联系人管理+专利签单流程的主题域与业务域划分
1. 业务流程梳理

2. 主题域模型划分(数据本质视角)
核心数据对象识别:

- 企业主体:工商注册号、名称、注册资本、行业分类
- 企业联系网络:联系人姓名、职位、电话、邮箱
- 知识产权服务:专利类型、申请状态、服务合同编号
- 沟通记录:通话时间、沟通内容、意向等级
主题域定义表:
主题域 | 核心实体 | 数据示例 |
---|---|---|
企业档案 | 企业主体 | 统一信用代码、法人代表、成立日期 |
企业关系 | 联系人/联系方式 | 联系人手机、部门、是否决策人 |
服务过程 | 沟通记录/商机 | 通话时长、下次跟进时间 |
知识产权 | 专利项目/合同 | 专利号、合同金额、服务周期 |
3. 业务域划分(流程视角)
根据业务流程分组:

- 数据采集域:爬虫获取工商数据、联系人清洗
- 客户管理域:企业客户档案维护、联系人标签管理
- 销售管理域:商机跟进、合同签订
- 服务交付域:专利撰写、官费代缴
业务域与主题域映射:
业务域 | 关联主题域 | 典型数据表 |
---|---|---|
数据采集 | 企业档案+企业关系 | ods_company_crawler |
客户管理 | 企业档案+企业关系 | dim_company , dim_contact |
销售管理 | 服务过程+知识产权 | fact_sales_opportunity |
服务交付 | 知识产权 | fact_patent_application |
4. 数仓建模实施示例
(1) 主题域→逻辑模型设计
企业档案主题域:

(2) 业务域→数仓分层实现
数据采集域(ODS层):
-- 爬虫原始数据表
CREATE TABLE ods.company_crawler (
credit_code STRING COMMENT '统一信用代码',
company_name STRING,
contact_name STRING,
mobile STRING,
crawl_time TIMESTAMP
) PARTITIONED BY (dt STRING);
客户管理域(DIM层):
-- 企业维度表(拉链表)
CREATE TABLE dim.dim_company (
credit_code STRING,
company_name STRING,
legal_rep STRING,
start_date STRING,
end_date STRING
) STORED AS PARQUET;
-- 联系人维度表
CREATE TABLE dim.dim_contact (
contact_id STRING,
credit_code STRING,
is_decision_maker BOOLEAN
);
销售管理域(DWD层):
-- 商机事实表
CREATE TABLE dwd.fact_sales_opportunity (
opportunity_id STRING,
credit_code STRING,
contact_id STRING,
intention_level INT COMMENT '1-5级意向度'
) PARTITIONED BY (dt STRING);
(3) 业务域命名规范
业务域 | 表前缀 | 示例表名 |
---|---|---|
数据采集 | ods_ | ods_company_crawler |
客户管理 | dim_ | dim_company |
销售管理 | dwd_sales_ | dwd_sales_opportunity |
服务交付 | dwd_ip_ | dwd_ip_patent_application |
5. 关键协作点说明
- 主题域模型确保数据一致性:
所有业务域中使用的credit_code
必须来自企业档案
主题域的定义(如长度18位且符合国标) - 业务域划分支持流程优化:
当销售团队需要增加"客户行业分析"功能时:- 确认需求属于
客户管理域
- 从
企业档案
主题域获取行业分类数据 - 在
dim_company
表中补充行业标签字段
- 确认需求属于
6. 典型数据分析场景
需求:分析"高科技行业决策人的签约转化率"
- 主题域联动:
企业档案
(行业分类) +企业关系
(决策人标记) +知识产权
(签约结果) - 业务域协作:
- 数据采集域:过滤高科技行业企业
- 客户管理域:标记决策人联系人
- 销售管理域:统计商机→合同的转化率
SQL实现:
SELECT
c.industry_type,
COUNT(DISTINCT o.opportunity_id) AS opp_count,
COUNT(DISTINCT p.contract_id) AS signed_count,
signed_count/opp_count AS conversion_rate
FROM dim_company c
JOIN dim_contact ct ON c.credit_code = ct.credit_code AND ct.is_decision_maker
JOIN dwd_sales_opportunity o ON ct.contact_id = o.contact_id
LEFT JOIN dwd_ip_patent_application p ON o.opportunity_id = p.source_opportunity
WHERE c.industry_type = '高科技'
GROUP BY c.industry_type;
总结:如何避免混淆?
- 先画主题域:回答"我们有哪些核心数据对象?"(企业、联系人、专利...)
- 再划业务域:回答"这些数据怎么被使用?"(采集→客户管理→销售→服务)
- 命名显式关联:通过表前缀(如
dwd_sales_
)体现业务域归属 - 验证关系:确保每个业务域的表能映射到主题域实体(如销售域的商机表必须关联企业主题域的信用代码)