ServiceNow 数据关系深入解析
1. 其他多对多关系
在 ServiceNow 中,多对多关系的典型代表是 sys_user_has_role 和 sys_user_grmember 表。前者维护用户与角色的关系,后者维护用户与用户组的关系。这些多对多表并非在 sys_m2m 表中定义,而是由 ServiceNow 专门创建的。
虽然 sys_m2m 表是定义多对多关系的简便方式,但也有其他途径。例如,可以利用字段建立多对多关系,引用字段在关联单个记录时很有效,但在 ServiceNow 中,能接受外键(FK)值的字段不止引用字段一种。
以 sc_catalog 表为例,该表存储服务目录信息。打开服务目录记录,在左侧列会看到“Editors”字段,显示的是一个锁图标,这是列表字段类型,属于特殊的引用字段,此引用指向用户( sys_user )表。点击锁图标可编辑该字段,能依次输入值,字段会将这些值以逗号分隔的系统 ID(Sys ID)列表形式存储在数据库列中。从技术上讲,这并非传统的 FK 列,更像是多 FK 列,包含多个主键(Sys ID)。理论上,可在表 A 和表 B 分别设置这种字段,从而在两表间建立伪多对多关系,不过实际操作中这种方式不太实用,但也证明了 ServiceNow 数据库的强大灵活性。
2. 强制一对一关系
严格来说,ServiceNow 中不存在传统意义的一对一关系。在数据库术语中,一对一关系要求右表记录的主键与左表记录的主键匹配
超级会员免费看
订阅专栏 解锁全文
1797

被折叠的 条评论
为什么被折叠?



