工业数字模型驱动引擎-非纯脚本服务中,图查询类型中的完全匹配和可选匹配有什么区别?:完全匹配与可选匹配返回结果对比示例
完全匹配与可选匹配返回结果对比示例
例如,假设在学校选课系统中有Students(学生)、Course(课程)、Teachers(教师)和Classroom(教室)四种数据实体,同时这四种数据实体之间存在的关系实体有Elective(学生选修课程)、Teach(教师教授课程)和StudentsRelationshipClassroom(学生在某教室上课)。
并为以上数据实体和关系实体分别创建了如表1所示的 数据实例 ,且确保这些数据已入图,如图1所示。
实体 |
数据实例 |
实例信息 |
---|---|---|
Students |
Student001 |
ID:S001 名称:Alice |
Student002 |
ID:S002 名称:Bob |
|
Course |
Course001 |
ID:C001 名称:Mathematics |
Course002 |
ID:C002 名称:Physics |
|
Teachers |
Teacher001 |
ID:T001 名称:Mr. Smith |
Teacher002 |
ID:T002 名称:Ms. Johnson |
|
Classroom |
Classroom001 |
ID:R101 |
Classroom002 |
ID:R102 |
|
Elective |
Elective001 |
ID:S001_C001 源端关联属性:S001 目标端关联属性:C001 |
Elective001 |
ID:S001_C002 源端关联属性:S001 目标端关联属性:C002 |
|
Teach |
Teach001 |
ID:T001_C001 源端关联属性:T001 目标端关联属性:C001 |
Teach002 |
ID:T002_C002 源端关联属性:T002 目标端关联属性:C002 |
运行API时,以查询Student001为例,即将请求参数“Students_ID”设为“S001”,查询结果如下:
如果“图查询类型”被设为“完全匹配”,因为图实例中缺少Student001和Classroom001的关系,整个匹配将失败,查询不会返回相应结果,如图3所示。然而,如果图2中如果没有Classroom实体,“完全匹配”将会更高效地检索出Student001所选修的课程和对应课程教学的老师。
如果“图查询类型”被设为“可选匹配”,即使图实例中缺少Student001和Classroom001的关系,仍将返回已成功匹配的信息,如图4所示。