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

Why does Oracle Fusion EBS use both ENABLED_FLAG and START_DATE_ACTIVE/END_DATE_ACTIVE in its database tables?

许多 Oracle EBS table 包括 ENABLED_FLAGSTART_DATE_ACTIVEEND_DATE_ACTIVE 列,用于确定该行在是否申请。

例如,要从 FND_LOOKUP table 中获取当前查找代码的列表,我会 运行 以下 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_DATE_ACTIVEEND_DATE_ACTIVE 似乎足以确定该行是否应该在应用程序中可用,为什么会有 ENABLED_FLAGENABLED_FLAG 还有其他我没看到的用途吗?

正如马修提到的——这主要是历史性的。 table 例如 FND_LOOKUPS 在代码中被引用了数千次。因此,没有简单的方法来更改现有的语义——您只能添加新的语义。

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