我想在指定历史表中添加不同持续时间的多个工作角色。我怎样才能在 ABAP 中获得它?
Posted
技术标签:
【中文标题】我想在指定历史表中添加不同持续时间的多个工作角色。我怎样才能在 ABAP 中获得它?【英文标题】:I want to add multiple job roles for different durations in designation history table . how can i get it in ABAP? 【发布时间】:2022-01-07 20:32:59 【问题描述】:我有 2 个表格,即员工详细信息和员工指定历史记录。
Employee details table - EMPID , Name , Age ,Gender. (EmpID - Primary Key)
Designation history table - EMPID , Startdate , Enddate , JobRole.
我知道指定历史表中还需要一个键来为给定的员工 ID 添加多条记录,我应该使用哪一个?
这样我就可以得到这样的输出 - Sumedh 于 2021 年至 2022 年担任 SAP 助理开发人员 然后从 2022 年到 2024 年,他担任高级工程师。开发商 然后在 2024-25 年再次被降级为助理 sap 开发人员。
【问题讨论】:
请提出您尝试过的代码,告诉我们您遇到的问题。 Stack Overflow 不接受寻求建议的问题。 很抱歉,我真的想要推荐。 【参考方案1】:为了简洁起见,我假设您只是省略了 MANDT
字段。如果您希望您的表是客户端指定的,它必须是每个表的第一个主键。接下来是什么?好吧,有几种选择:
选项 1:使用 EMPID
和 Startdate
作为主键。您会看到在较旧的 SAP 数据库模式中使用了很多,例如表 ADRP
。这当然假设没有人每天被重新分配超过一次。
选项 2:添加另一列来计算该员工的分配。那么主键是EMPID
和ASSIGNMENT_NUM
。
选项 3:像 BOPF 那样做。与其想知道主键应该是什么,不如给每个表一个主键字段DB_KEY
,它是一个UUID,在生成数据库条目的那一刻生成(您可以使用类@ 987654329@ 用于生成它们)。然后再也不用担心主键了。
哪一个是“最佳”选项?抱歉,这更像是一个宗教问题。
【讨论】:
我也想过将 Startdate 作为主键,但我想我在某处读到,将日期作为主键不是一个好主意?这是真的吗? @sumedhpatil 在软件架构中没有绝对的真理。每个设计都有优点或缺点,这可能对您的特定用例很重要,也可能无关紧要。 那么我将使用 startdate 作为主键。非常感谢。以上是关于我想在指定历史表中添加不同持续时间的多个工作角色。我怎样才能在 ABAP 中获得它?的主要内容,如果未能解决你的问题,请参考以下文章