# 创建关系实体
#### 实体新增方式概述
系统提供多种方式生成关系实体，包括自定义实体参数、集成xDM-F模型信息、逆向建模、导入关系实体等。
- **自定义实体参数**：自定义实体相关参数生成实体模型。
- **集成xDM-F模型**：集成xDM-F应用下的模型自动生成正在工作的LinkX-F实体，快速同步xDM-F模型定义与属性信息。
- **逆向建模**：将用户已有数据库的数据转换为模型，快速复刻复杂实体及实体对应的多个属性。
- **导入关系实体**：通过上传xlsx文件，一次性批量导入实体及其属性。
 
#### 前提条件
已获取开发人员及以上权限用户的账号和密码。
#### 通过自定义参数方式创建实体
1. 登录LinkX-F系统首页。
2. 选择"模型设计 \> 数据模型管理"，默认进入"数据实体"页面。
3. 在左侧导航栏选择"关系实体"，进入"关系实体"页面。
4. 单击"创建"，弹出"创建关系实体"页面。 
   图1创建关系实体   
   ![](https://support.huaweicloud.com/instg-idme/figure/zh-cn_image_0000002502256688.png "点击放大")
   
   
5. 填写基本信息和物理表信息，如[表1]和[表2]所示：
   
    表1基本信息 
   | 参数      | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   |:---|:---|
   | 英文名称     | 根据源数据实体和目标数据实体，为关系实体定义一个能准确表达其含义与功能的英文名称。 必填，需以大写英文字母开头，只能包含英文字母、数字和_，长度不能超过256个字符。                                                                                                                                                                                                                                                                                                              |
   | 中文名称    | 定义关系实体的中文名称，使其与实体的英文名称相对应。 必填，只能包含中文、英文字母、数字、_、-，长度不能超过128个字符。                                                                                                                                                                                                                                                                                                                                |
   | 别名      | 定义关系实体的别名，使其无需受限中英文名称的唯一性等约束。 非必填，系统默认自动写入英文名称，支持手动修改，长度不能超过128个字符。                                                                                                                                                                                                                                                                                                                                |
   | 英文描述     | 填写实体的简单英文描述信息。 非必填，不能包含中文字符，长度不能超过1024个字符。                                                                                                                                                                                                                                                                                                                                                   |
   | 中文描述     | 填写实体的简单中文描述信息。 非必填，长度不能超过1024个字符。                                                                                                                                                                                                                                                                                                                                                              |
   | 责任人      | 必填，选择实体责任人。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 是否实体     | 必填，可选"是"或"否"。 - 选择"是"：实体关系，有属性，对于两端的数据实体实例，多对多。  - 选择"否"：非实体关系，也称为普通关系，关系本身没有属性，对于两端的数据实体实例，多对一。 **请注意，创建非实体关系时，需保证源端数据实体存在关联属性。当源端数据实体选择xDM-F来源的数据实体时，请提前将该数据实体自定义属性中的入图属性的"是否关联属性"值改为是。**    |
   | 源数据实体名称  | 作为关系实体源端的数据实体。来源于"数据模型管理 \> 数据实体"中的数据实体。                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 源端关联属性 | 根据"是否实体"选择不同，源端关联属性可选项不同。 - 当为实体关系时，表示多对多关系，源端关联属性只能设置为唯一键属性。  - 当为非实体关系时，源端关联属性只可选关联属性，关联属性表示多对一关系。                                                                                        |
   | 关系名称    | 自动写入已填写的"英文名称"。                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 目标数据实体名称 | 作为关系实体目标端的数据实体。来源于"数据模型管理 \> 数据实体"中的数据实体。                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 目标端关联属性  | 目标端关联属性必须为唯一键属性。                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 源系统      | 非必填，来源于"基础数据管理 \> 源系统"中的数据。                                                                                                                                                                                                                                                                                                                                                                                                                  |
      
    表2物理表信息 
   | 参数       | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | 是否构建表   | 可选"不构建表"或"构建物理表"，默认为"不构建表"。 - **不构建表**：不自动构建表。  - **构建物理表**：首次发布关系实体后将自动构建物理表，并生成数据库映射。  - **关联物理表**：根据关联的物理表生成关系实体、属性及映射信息。   |
   | 数据源    | 仅当"是否构建表"选"构建物理表"时显示且必填。                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | Schema | 仅当"是否构建表"选"构建物理表"时显示且必填，根据已选"数据源"下拉选择Schema。                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 表名称    | 仅当"是否构建表"选"构建物理表"时显示且必填。数据库表名，必须以字母开头，且只能包含字母、数字和_，不能与其他实体的表名称重复，长度不能超过22个字符。                                                                                                                                                                                                                                                                                                                                                                                             |
      
   
   
6. 填写完后单击"保存"。
 
#### 通过同步xDM-F方式创建实体
通过xDM-F同步任务，可以将xDM-F关系实体模型及其属性信息同步至LinkX-F系统，从而快速生成与xDM-F模型相对应的LinkX-F关系实体。这些实体被存放在指定租户下，状态为"正在工作"，"模型来源"显示为"xDM-F"。有关如何同步xDM-F应用下模型数据，请参考[xDM-F数据同步功能使用指引](https://support.huaweicloud.com/instg-idme/idme_instg_0321.html)。
区分实体关系同步和非实体关系同步，如[表3]所示。
 表3同步规则说明 
| 关系类型   | 同步规则说明                                                                                                                                                                                       |
|:---|:---|
| 实体关系 | 仅同步xDM-F模型对应"基本信息"中"同步至LinkX-F"为"是"、"模型分类"为"业务数据模型"的关系实体。同时，实体属性会被全部同步，并根据xDM-F实体属性是否"入图"自动映射写入对应LinkX-F实体属性的"是否入图"值。但如果属性是唯一键或关联属性，不论xDM-F实体属性是否"入图"，LinkX-F实体发布后都会自动为对应属性配置图数据库映射字段，后续自动入图。 |
| 非实体关系 | 仅当同步过来的源端和目标端数据实体存在关联，且其中有类型为"参考对象"的扩展属性或基本属性时，LinkX-F系统会自动生成相关的非实体关系，命名规则为***{源端数据实体英文名称*** **}** _**ForeignKey** _***{目标端数据实体英文名称*** **}** _***{源端数据实体属性的英文名称*** **}**。                  |
   
请注意，xDM-F来源的关系实体存在以下修改限制：
- 在"基本信息"中，不支持对"责任人"、"源系统"和"标签"外的其他字段进行修改。
- 在"关系实体属性"中，仅支持上移、下移、置顶对应的自定义属性，其他操作均不支持（如新增、修改、删除、生效、失效等）。
 
#### 通过逆向建模方式创建实体
逆向建模是指将用户已有关系型数据库的物理表转换为模型，通过逆向建模生成的数据实体默认关联物理表，保存后不可修改。配置逆向建模生成数据实体时，既能根据已识别的物理表间的单列外键约束关系自动创建非实体类关系，也能手动添加确认物理表间的关联关系，生成关系实体。
**逆向建模生成的数据实体和非实体关系模型，其名称根据规则自动生成，说明如下**：
- 数据实体名称显示为***{物理表名** **}*** ，非实体关系名称显示为***{数据库中的外键约束名称}***。
- 系统会自动校验名称中是否存在非法字符以及名称是否重复。如果存在非法字符，将按照中英文名称的规范要求去除名称中的非法字符；如果首字符非字母，则会在数据实体名称前添加"DM_"前缀；如果名称重复，则会在其后添加"_01"、"_02"等后缀。
**逆向建模生成的** **数据模型属性** **将自动与LinkX-F中的系统基本属性及自定义属性进行适配，规则如下：**
- 在适配LinkX-F属性时，如果数据库字段的英文名称（不区分大小写）及类型与LinkX-F中的系统基本属性一致时，则被视为系统基本属性；如果英文名称不相同，则被视为自定义属性；如果英文名称相同但类型不同，也会被视为自定义属性，并在属性英文名称后添加"_01"、"_02"等后缀，同时使属性的中文名称与英文名称显示相同 。
- 在适配LinkX-F属性时，如果数据库字段含中文字符，将自动移除英文名称以及英文描述中的非法中文字符；如果自定义属性的英文名称重复，则自动在其后添加"_01"、"_02"等后缀；如果自定义属性和系统基本属性的中文名称重复，则自动在其后添加"_01"、"_02"等后缀。
1. 登录LinkX-F系统首页。
2. 选择"模型设计 \> 数据模型管理"，默认进入"数据实体"页面。
3. 在左侧导航栏选择"关系实体"，进入"关系实体"页面。
4. 单击列表上方"逆向建模"，弹出"逆向建模"窗口。
5. 填写参数信息，如[表4]所示：
   
    表4参数信息 
   | 参数       | 说明                                                                                             |
   |:---|:---|
   | 数据库类型      | 必填，选择数据库类型，可选Oracle、PostgreSQL、MySQL、SQL Server。                                              |
   | 数据源名称   | 必填，只可选择当前租户下的数据源。 下拉可选值来源于"基础数据管理 \> 数据源"中的数据。 |
   | Schema | 必填，Schema类似于分区。                                                                                |
      
   
   
6. （可选）单击"采集元数据"，系统自动获取所选数据源下的所有物理表。 
   当关系型数据库下的物理表较上一次采集有更新时，您可通过"采集元数据"获取最新的物理表。
   
   
7. 在物理表列表中，勾选所需物理表，单击"下一步"。 
   您也可单击字段旁的![](https://support.huaweicloud.com/instg-idme/figure/zh-cn_image_0000001948228097.png)，执行条件筛选，并基于筛选结果勾选物理表。
   ![](https://support.huaweicloud.com/instg-idme/public_sys-resources/note_3.0-zh-cn.png)
   支持选择已创建过实体的物理表来重复创建实体，且选中物理表的数量单次不能超过20个。
   
   
8. 在物理表关系建模阶段，单击"添加"，输入关系实体信息。 
   如果勾选了"自动识别主外键关系"，系统将自动识别已勾选物理表间的**单列外键约束** 关系，并生成相应的非实体关系信息，且仅关系实体的英文名称和中文名称支持修改。
   ![](https://support.huaweicloud.com/instg-idme/public_sys-resources/note_3.0-zh-cn.png)
   单列外键约束建立表与表之间的关联关系时，通过单个字段来作为外键进行关联。例如，在一个订单表中，通过单列外键将"客户ID"与客户表中的"客户ID"相关联，以表示订单与客户间的关联关系。
   
   
9. 单击"确定"，弹出逆向建模生成结果窗口。
 
#### 通过导入文件方式创建实体
您可通过导入文件方式来批量新增实体，导入实体之前需先获取模板。还可进入"我的工作空间 \> 导入任务"查看已创建的导入任务进行状态（详细请参见[查看我的导入任务](https://support.huaweicloud.com/instg-idme/idme_instg_0005.html)）。
请注意，在导入文件时，系统会根据关系实体编码是否为空，来决定对即将导入的关系实体执行新增还是更新操作。
- 如果关系实体编码为空，则进行新增操作。
- 如果关系实体编码不为空，则进行更新操作。在更新关系实体时，系统会自动校验实体是否属于当前租户，并检查实体状态是否为正在工作状态。
1. 登录LinkX-F系统首页。
2. 选择"模型设计 \> 数据模型管理"，默认进入"数据实体"页面。
3. 在左侧导航栏选择"关系实体"，进入"关系实体"页面。
4. 获取模板。
   
   在列表上方选择"关系实体批量操作 \> 下载空模板"。
   
   
5. 填写模板文件。
   
   根据[4]获取模板文件，填写信息后保存。
   
   
6. 导入关系实体。 
   1. 在列表上方选择"关系实体批量操作 \> 批量导入"，弹出批量导入页面。
   
   2. 选取[5]中提前准备好的文件，单击"确认上传"。
   
   
   
   
 
