为什么Oracle Fusion EBS在其数据库表中同时使用ENABLED_标志和START_DATE_ACTIVE/END_DATE_ACTIVE?

为什么Oracle Fusion EBS在其数据库表中同时使用ENABLED_标志和START_DATE_ACTIVE/END_DATE_ACTIVE?,oracle,oracle-ebs,oracle-fusion-apps,Oracle,Oracle Ebs,Oracle Fusion Apps,许多Oracle EBS表包括列已启用\u标志、开始日期\u活动、和结束日期\u活动,这些列用于确定行在应用程序中是否可用 例如,要从FND\u lookup表中获取当前查找代码的列表,我将运行以下SQL查询 select lookup_code from fnd_lookups fl where and fl.enabled_flag = 'Y' and sysdate between nvl(fl.start_date_active,sysdate) and nvl(fl.end_date

许多Oracle EBS表包括列
已启用\u标志
开始日期\u活动
、和
结束日期\u活动
,这些列用于确定行在应用程序中是否可用

例如,要从
FND\u lookup
表中获取当前查找代码的列表,我将运行以下SQL查询

select lookup_code 
from fnd_lookups fl
where and fl.enabled_flag = 'Y' and sysdate between nvl(fl.start_date_active,sysdate) and nvl(fl.end_date_active,sysdate)

我的问题是,既然
START\u DATE\u ACTIVE
END\u DATE\u ACTIVE
似乎足以确定该行在应用程序中是否可用,为什么会有
ENABLED\u标志?
ENABLED\u FLAG
还有其他我没有看到的用途吗?

正如Matthew提到的-这主要是历史性的。像FND_LOOKUPS这样的表在代码中被引用了数千次。因此,没有简单的方法可以更改现有的语义-您只能添加新的语义


从好的方面来说,您只需要在允许选择值时执行此操作,而不需要在加入时执行此操作…

这不是编程问题-我将投票关闭。但是,记住两件事。首先,很多应用程序对象库代码都是30年前构建的遗留代码。很可能他们一开始只是“启用的标志”,后来决定需要日期,但无法摆脱“启用的标志”。第二,取消选中“enabled_标志”会导致记录不可用,即使是对于回溯交易也是如此,因此存在功能差异。请注意,Oracle Fusion和Oracle EBS是不同的产品。虽然融合可能有相同的模式。