簡體   English   中英

如何在 SAP 字典表中查找外鍵?

[英]How to find ForeignKey in SAP Dictionary tables?

AUFK有一個名為ADRNRA的列。

ADRNRA 列中的值在表ADRC中具有匹配的行。

在這種情況下,我找到了 ADRC,因為有人告訴我解決方案。

也許我是盲人,但看起來 AUFK-ADRNRA 沒有明確的外鍵。

有沒有一種方法可以使用腳本或 SQL 進行自省並找到匹配的相關表(在此示例中為 ADRC)?

事實上,該字段未標記為表ADRC的字段ADDRNUMBER的外鍵,但如果您查看了表AUFK的字段ADRNRA的域,您會在幾秒鍾內找到引用。

域(在本例中AD_ADDRNUM )有一個明確指定的值表,即 surprise, surprise, ADRC

領域

值表

不,沒有簡單的方法來揭示 SAP 系統中的外鍵。 :-(

數據庫管理系統不需要您為外鍵建模。 只有當您想要強制執行約束(例如“必須引用另一個表中的行”)和自動反應(例如級聯刪除(“如果刪除另一個表中的‘父’行,則刪除該行”))時,您才這樣做。

較舊的 SAP 應用程序在應用程序層(即 ABAP 代碼)中實現了類似的約束和反應。 他們不需要模型化的關系,因此人們根本就不會對它們進行建模。

識別外鍵關系的常用方法有:

  • 詢問有經驗的用戶或設計數據庫模型的人。
  • 猜測,來自相同的列名和數據類型。
  • 檢查應用程序代碼並查看它加入了哪些表。

還有一些實驗性的機器學習算法試圖檢測關系; 谷歌“外鍵發現”以獲取更多信息。

正如@Sandra 在她的評論中指出的那樣,較新的 SAP 應用程序揭示了更多的關系,因為它們使用 CDS 視圖。 在那里建模關系有直接的好處,例如在 OData 服務中自動生成關聯,選擇關系,並使用它們來建模業務對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM