Oracle Apps中seeded预定义表与custom自定义表的区别是什么?
基础定义
- Seeded表:Oracle官方预先开发、随Oracle Apps标准产品交付的数据库表,用于存储标准模块的核心业务数据、系统元数据与配置信息,是所有官方标准功能运行的基础依赖。
- Custom表:项目实施或运维团队根据企业个性化业务需求自行开发创建的自定义表,不属于Oracle官方标准交付范围,仅用于支撑客制化功能需求。
核心区别
- 所属与维护主体不同
Seeded表归属Oracle官方所有,表结构、约束、索引的设计与更新均由Oracle负责,产品版本升级、补丁安装时Oracle会自动对这类表做结构调整或数据迁移。
Custom表归属开发/运维团队所有,全生命周期的维护工作均由企业自行负责,Oracle官方补丁或版本升级不会对这类表做任何修改。 - 命名规范不同
Seeded表统一使用Oracle官方模块前缀命名,比如应用基础模块前缀为
FND、HRMS模块前缀为PER/PAY,不会出现XX、CUST这类自定义标识前缀。
根据Oracle Apps开发规范,Custom表必须以企业自定义前缀开头,最常用的是XX前缀,例如XX_PER_EMP_EXT,用于和官方标准表做明确区分,禁止使用Oracle标准模块前缀命名自定义表。 - 操作限制不同
官方明确禁止直接对Seeded表执行增删改(DML)操作,也不允许私自修改Seeded表结构(新增字段、新增索引等),违反该要求会导致Oracle官方不提供技术支持,且后续补丁升级、版本更新时极易出现数据冲突、标准功能异常。如果需要调整Seeded表数据,必须通过Oracle公开的标准API、功能界面或并发请求完成。
Custom表无官方操作限制,开发团队可根据业务需求自行调整表结构、操作表内数据,不会影响官方标准功能的升级和支持服务。 - 用途不同
Seeded表仅用于存储标准功能覆盖的业务数据,比如你接触到的
FND_USER存储系统所有用户账号信息,PER_ALL_PEOPLE_F存储HRMS模块所有人员的核心主数据,都是标准功能运行必须依赖的表。
Custom表用于存储标准功能不支持的个性化业务数据,比如企业自定义的人员绩效数据、定制化报表的中间计算结果、对接第三方系统的临时数据等,仅为客制化功能、报表提供数据支撑。
示例说明
Seeded表示例
FND_USER:应用基础模块标准表,存储系统用户的账号名、创建时间、失效时间、关联人员ID等核心信息,标准登录校验、权限管理功能都依赖该表数据。PER_ALL_PEOPLE_F:HRMS模块核心人员主数据表,属于日期追踪类型的标准表,存储员工的姓名、证件号、雇佣日期、组织归属等核心人事数据,HR模块的人事管理、薪资核算、考勤计算等所有标准功能都基于该表运行。
Custom表示例
XX_PER_EMPLOYEE_SCORE:企业自定义的人员绩效表,存储标准HR模块不支持的员工季度绩效评分、评级、考核人等数据,用于支撑自定义开发的绩效查询报表、绩效核算功能。XX_PAY_SALARY_EXT:企业自定义的薪资扩展表,存储标准薪资模块不支持的个性化补贴、专项扣减项数据,用于对接自定义开发的工资条发放、个税申报功能。
内容的提问来源于stack exchange,提问作者Baidarvi Roy

