如何在 SAP 字典表中查找外键?
How to find ForeignKey in SAP Dictionary tables?
Table AUFK has a column called ADRNRA.
ADRNRA 列中的值在 table ADRC.
中具有匹配的行
在这种情况下,我找到了 ADRC,因为有人告诉我解决方案。
可能是我眼瞎了,看来AUFK-ADRNRA没有明确的外键。
有没有办法通过脚本或 SQL 进行内省并找到匹配的相关 table(在此示例中为 ADRC)?
不, 没有简单的方法来显示 SAP 系统中的外键。 :-(
数据库管理系统不需要您为外键建模。仅当您想要强制执行 "must refer to a row in the other table" 等约束和级联删除 ("delete this row if its 'parent' row in the other table is deleted") 等自动反应时才这样做。
较旧的 SAP 应用程序在应用程序层(即 ABAP 代码)中实现了类似的约束和反应。他们不需要建模关系,因此人们根本就不会建模。
识别外键关系的常用方法有:
- 请教有经验的用户或设计数据库模型的人。
- 猜测,来自相同的列名和数据类型。
- 检查应用程序代码并查看它加入了哪些表。
还有一些尝试检测关系的实验性机器学习算法; google "foreign key discovery" 了解更多信息。
正如@Sandra 在她的评论中指出的那样,较新的 SAP 应用程序揭示了更多的关系,因为它们使用 CDS 视图。在那里建模关系有直接的好处,例如在 OData 服务中自动生成关联,根据关系进行选择,并使用它们来建模业务对象。
确实该字段未标记为 table ADRC
字段 ADDRNUMBER
的外键,但您是否应该查看字段 ADRNRA
的域在 table AUFK
中,您会在几秒钟内找到参考。
域(在本例中为 AD_ADDRNUM
)具有明确指定的值 table,即惊喜,惊喜,ADRC
。
Table AUFK has a column called ADRNRA.
ADRNRA 列中的值在 table ADRC.
中具有匹配的行在这种情况下,我找到了 ADRC,因为有人告诉我解决方案。
可能是我眼瞎了,看来AUFK-ADRNRA没有明确的外键。
有没有办法通过脚本或 SQL 进行内省并找到匹配的相关 table(在此示例中为 ADRC)?
不, 没有简单的方法来显示 SAP 系统中的外键。 :-(
数据库管理系统不需要您为外键建模。仅当您想要强制执行 "must refer to a row in the other table" 等约束和级联删除 ("delete this row if its 'parent' row in the other table is deleted") 等自动反应时才这样做。
较旧的 SAP 应用程序在应用程序层(即 ABAP 代码)中实现了类似的约束和反应。他们不需要建模关系,因此人们根本就不会建模。
识别外键关系的常用方法有:
- 请教有经验的用户或设计数据库模型的人。
- 猜测,来自相同的列名和数据类型。
- 检查应用程序代码并查看它加入了哪些表。
还有一些尝试检测关系的实验性机器学习算法; google "foreign key discovery" 了解更多信息。
正如@Sandra 在她的评论中指出的那样,较新的 SAP 应用程序揭示了更多的关系,因为它们使用 CDS 视图。在那里建模关系有直接的好处,例如在 OData 服务中自动生成关联,根据关系进行选择,并使用它们来建模业务对象。
确实该字段未标记为 table ADRC
字段 ADDRNUMBER
的外键,但您是否应该查看字段 ADRNRA
的域在 table AUFK
中,您会在几秒钟内找到参考。
域(在本例中为 AD_ADDRNUM
)具有明确指定的值 table,即惊喜,惊喜,ADRC
。