如何在ABAP中创建两个复合外键

时间:2015-09-18 07:28:13

标签: abap consistency data-dictionary

我有三张桌子。 user taguser_taguser的主要内容是iduser + clienttag的主要内容是idtag + client。现在,我想为表格user_tag为这两个主键创建外键,而不需要客户端两次。

我该怎么做?如何在条目帮助/检查中显示(输入可用的原点只有一个,而client有两个来源)?

这里的例子是:

client|idtag     client|iduser
-------------    -------------
  1   |  1         1   |  3   
  1   |  2         1   |  4  
  2   |  1         2   |  3    

我新表的可能值:

client|idtag|iduser
--------------------
  1   |  1  |  3
  1   |  1  |  4    
  1   |  2  |  3 
  1   |  2  |  4  
  2   |  1  |  3    

现在在我的检查表中我想检查我的密钥是否在该表中。如果我不检查客户端,我会有更多我不想要的可能性(不一致):

client|idtag|iduser
--------------------
  2   |  1  |  4    
  2   |  2  |  3 
  2   |  2  |  4  

2 个答案:

答案 0 :(得分:1)

只需考虑$ gulp (或var gulp = require('gulp'); var concatCss = require('gulp-concat-css'); )之类的隐式内容,就像它不存在一样,只需将外键定义为CLIENT,就像你在做那样对于像MySQL或Postgres这样的数据库。

我不知道您的要求是什么,但总是有可能在SAP中定义透明表而不依赖于客户端,但这对于应用程序数据来说是不太可能的,而是用于跨客户端配置。

答案 1 :(得分:1)

仅从另一个角度解释:当您在SAP登录时,您的登录是特定于客户的。

当你写一个像

这样的选择时
SELECT * FROM USER.
...
ENDSELECT.

您只获得实际客户的条目。系统会在实际客户端上明确限制选择。

如果您想要独立于客户选择,则必须在select语句中使用加法CLIENT SPECIFIC

换句话说:在正常情况下,不存在来自不同客户的数据混合。因此,如果user_tag只有一个客户端密钥,也没有问题。