添加或移除索引字段
索引字段可用于优化数据库搜索。此类字段被定义为数据库表中相关列的约束。支持单一索引和复合索引。
添加索引字段
要将索引字段添加到现有数据库表中:
1. 创建一个新的构建基块,该构建基块从 PTC 构建基块扩展而来,所述 PTC 构建基块中包含与数据库表相关的实体的管理器。这些管理器在 PTC.Base.Manager 事物的“配置”页面上的 DefaultGlobalManagerConfiguration 配置表中指定。 例如,要向作业单中添加索引键,请导航至 PTC.JobOrderImpl.Manager 事物。
有关详细信息,请参阅创建新构建基块
2. 导航至此新构建基块的管理器事物。
3. “服务”下,针对要添加索引字段的实体,查找并覆盖 GetDBInfo 服务。例如,要向作业单的数据库表中添加索引字段,请查找并覆盖 GetJobOrderDBInfo 服务。
4. 在脚本编辑器中,向下滚动至要向其添加索引字段的数据形状的条目。
5. 为数据形状添加 indexedFields 数组,其属性如下:
unique - 指定列是否必须具有唯一值。
fieldnames - 包含列名称的数组。如果仅指定了一列,则创建单一索引。如果指定了多列,则创建复合索引。
* 
指定 name,将单个值作为列的名称,而不为 fieldnames 指定单个值,这样可创建单一索引。如果 namefieldnames 均已指定,则 name 将被忽略,并使用 fieldnames 值创建索引。
identifier - 数据库中实体的名称。如果尚未指定,则系统会自动以 <表名>_<列名1>_<列名2>_<列名N>_idx 格式生成该值。如果已指定,则无论对于指定值,还是任何自动生成的值,该值都必须具备唯一性。该值的最大长度为数据库所允许的最大标识符长度。
6. 单击“保存”以保存对服务所做的更改。
7. 导航至 PTC.DBConnection.Manager 事物。
8. 将数据库信息与数据库架构同步。有关详细信息,请参阅同步数据库信息和数据库架构
移除索引字段
要移除索引字段:
* 
切勿移除任何预设定义的索引字段。仅移除之前已添加的索引字段,例如,按照向数据模型实体添加自定义属性向数据模型添加自定义实体添加的索引字段。
1. 创建一个新的构建基块,该构建基块从 PTC 构建基块扩展而来,所述 PTC 构建基块中包含与数据库表相关的实体的管理器。这些管理器在 PTC.Base.Manager 事物的“配置”页面上的 DefaultGlobalManagerConfiguration 配置表中指定。 例如,要从作业单中移除索引字段,请导航至 PTC.JobOrderImpl.Manager 事物。
有关详细信息,请参阅创建新构建基块
2. 导航至为系统配置的数据库事物,例如,PTC.DBConnection.MSSQLDatabase
3. “服务”下,执行具有以下输入的 RemoveIndex 服务:
dataShapeName - 要从中移除索引字段约束的数据库表的数据形状。必填。
fieldName - 要从中移除索引字段约束的数据形状的字段。仅当移除单一索引字段时才需要此输入。
dbInfo - 要移除的索引字段约束的 JSON 说明。必须提供在定义索引字段的 GetDBInfo 服务中所指定的相同 identifier (如果有) 和 name 信息。在移除复合索引时需要此输入。
4. 单击“执行”
5. 导航至定义了索引字段的 GetDBInfo 服务,并从中移除索引字段定义。如果不移除此类定义,则下次运行同步服务时,会将索引字段添加回数据库。
例如,要从 MyObject 数据形状中名为 WorkDefinitionUID 的字段内移除带有指定 identifier 的索引字段约束,请为输入参数指定以下内容:
dataShapeName - MyObject
fieldName - WorkDefinitionUID
dbInfo -
{
"identifier":"myobject_workdefinitionuid_idx"
"name":"WorkDefinitionUID",
}
这对您有帮助吗?