In general, you should use a validation table if you want a key or descriptive flexfield segment, or report parameter, to use values that your application already requires or maintains for other application purposes. Using a validation table then lets you avoid maintaining two copies of the same values (one in your application's table and the other in Oracle Application Object Library's tables).
You can use many advanced features with your table-validated value sets. You can use validation tables for flexfield segments or report parameters whose values depend on the value in a prior segment. You use flexfield validation tables with a special WHERE clause (and the $FLEX$ argument) to create value sets where your segments depend on prior segments. You can make your segments depend on more than one segment, creating cascading dependencies. You can also use validation tables with other special arguments to make your segments depend on profile options or field values.
If you want to make use of key flexfield features such as rollup groups and parent-child relationships, you can store the child values in your validation table, but you should use the Segment Values windows Oracle Applications provides to add or define the parent values and rollup groups.
Segment Values Window
Parent and Child Values and Rollup Groups
Value Set Naming Conventions
Using Validation Tables
Defining Your Validation Table
Creating Grants and Synonyms for Your Table
WHERE Clauses and Bind Variables for Validation Tables
Example of $FLEX$ Syntax
Precedence of Default Values, Shorthand Entry Values, and COPY Values in Key Flexfields
Value Set Windows
Validation Table Information Window