# 数据模型核心业务逻辑模块 本模块包含了数据模型相关的所有核心业务逻辑函数,处理数据模型的创建、查询、更新、删除以及与其他数据对象的关系管理。 ## 主要功能 1. **数据模型基础操作** - 创建数据模型节点 - 更新数据模型属性 - 删除数据模型节点 - 查询数据模型详情 2. **数据模型关系管理** - 数据模型与元数据(meta_node)的关系处理 - 数据模型与数据资源(data_resource)的关系处理 - 数据模型与其他数据模型的关系处理 - 数据模型与标签(data_label)的关系处理 3. **数据模型层级管理** - 计算并设置数据模型层级(level)属性 - 处理父子关系(child) 4. **数据模型血缘分析** - 数据模型血缘关系分析 - 数据资源血缘关系分析 - 生成血缘图谱数据 5. **图谱生成** - 生成血缘关系图谱(Kinship) - 生成影响关系图谱(Impact) - 生成全量关系图谱(All) ## 核心函数列表 - `calculate_model_level`:计算数据模型层级 - `handle_model_relation`:处理数据模型血缘关系 - `handle_data_model`:创建数据模型节点 - `resource_handle_meta_data_model`:处理数据模型与数据资源的关系 - `model_handle_meta_data_model`:处理数据模型与其他数据模型的关系 - `handle_no_meta_data_model`:处理从DDL中选取的没有元数据的数据模型 - `handle_id_model`:获取数据模型详情 - `model_list`:获取数据模型列表 - `model_resource_list`:获取有血缘关系的数据资源列表 - `model_kinship_graph`:生成数据模型血缘图谱 - `model_impact_graph`:生成数据模型影响图谱 - `model_all_graph`:生成数据模型全量图谱 - `data_model_edit`:更新数据模型 ## 数据模型 数据模型(data_model)节点具有以下主要属性: - `name`:数据模型名称(中文) - `en_name`:数据模型英文名称 - `category`:数据模型分类 - `description`:数据模型描述 - `time`:创建/更新时间 - `level`:数据模型层级 - `id_list`:相关ID列表(JSON序列化字符串) ## 关系类型 数据模型相关的主要关系类型: - `component`:数据模型与元数据的组成关系 - `resource`:数据模型与数据资源的关联关系 - `use`:数据模型之间的使用关系 - `child`:数据模型的父子关系 - `label`:数据模型与标签的分类关系 ## 依赖关系 - 依赖 `app.core.graph.graph_operations` 提供图数据库节点操作功能 - 依赖 `app.routes.graph_routes` 提供图数据库连接 - 依赖 `app.services.neo4j_driver` 提供Neo4j会话管理 - 依赖 `app.core.meta_data` 提供元数据处理功能 - 依赖 `app.utils.common_functions` 提供通用功能函数 - 依赖 `app.core.data_resource` 提供数据资源处理功能 ## 调用示例 ```python # 创建数据模型示例 from app.core.data_model.model import handle_data_model, calculate_model_level # 创建数据模型 model_name = "客户信息模型" result_list = ["customer_info_model"] result = json.dumps([{"resource_id": 123, "metaData": [{"id": 456}]}]) receiver = { "category": "业务模型", "description": "包含客户基本信息的数据模型", "tag": 789, "childrenId": [] } model_id, model_node = handle_data_model(model_name, result_list, result, receiver) # 计算模型层级 calculate_model_level(model_id) ```