ABAP 透明表外键
*透明表外键
例1 :系统中两个表,MARA -- 物料基本信息 MAKT -- 物料描述信息
而必须要先在表MARA有物料信息(例如物料号MATNR),才能在MAKT中有对应的物料描述。即需要表MARA中有物料号A,才能在MAKT中有物料号A对应的物料描述信息。且MARA中一条物料信息可以对应MAKT中多条物料描述信息(不同语言)
故需要针对表MAKT中字段MATNR(物料号)设置外键:
1:CN表示1对多的关系。
例2:新建的两个表:ZSCHOOL -- 学校信息 ZSTUDENT -- 学生基本信息
字段名称 |
主/外键 |
类型 |
长度 |
小数位 |
描述 |
ZCODE |
P.KEY |
NUMC |
5 |
|
学生ID |
ZNAME |
|
CHAR |
10 |
|
学生姓名 |
SEX |
|
CHAR |
1 |
|
性别 |
ZSCHOOLID |
F.KEY |
NUMC |
3 |
|
学校ID |
WEIGH |
|
QUAN |
10 |
2 |
体重 |
ZUNIT |
|
UNIT |
3 |
|
单位 |
字段名称 |
主/外键 |
类型 |
长度 |
小数位 |
描述 |
ZSCHOOLID |
P.KEY |
NUMC |
3 |
|
学校ID |
ZSNAME |
|
CHAR |
20 |
|
学校名称 |
ZADD |
|
CHAR |
50 |
|
学校地址 |
而必须要先在表ZSCHOOL 里有学校ID,才能在表ZSTUDENT中为学生选择学校ID。且ZSCHOOL中一条学校信息可以对应ZSTUDENT中多条学生信息(不同学生同一学校)
故在表ZSTUDENT中针对字段ZSCHOOLID外键配置:
设置外键后,若在ZSTUDENT中新建数据,且还未含有学校ID,系统检查时则会提醒消息(上面配置的消息):
此时需要现在表ZSCHOOL中创建字段ZSchoolID的值(例如101),才能在表ZSTUDENT中选择字段ZSchoolID的值:
表ZSCHOOL中创建字段ZSchoolID的值(例如101)后,再次到表ZSTUDENT创建条目: