---
title: SAIF.Business.Menu database tables
summary: Database tables used by this library with relationships and usage context.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.Menu
reference_type: package
---

# SAIF.Business.Menu database tables

This page catalogs database tables accessed by this library.

## Table catalog

| Table | Database | Schema/Link | CRUD | Purpose | Primary business object |
| --- | --- | --- | --- | --- | --- |
| [BUSONLINE_APPS_CODE](#busonline-apps-code) | Oracle | [unqualified]** | C/R/U/D | Stores application identifiers used to scope menu pages | `clsApplicationCode` |
| [DUAL](#dual) | Oracle | Oracle system object* | R | Oracle system table used for sequence NEXTVAL retrieval | `clsMenuFavorite`, `clsMenuItem`, `clsMenuPage`, `clsMenuSecurity` |
| [MENU_CATEGORY_CODE](#menu-category-code) | Oracle | [unqualified]** | C/R/U/D | Stores category codes that classify menu items | `clsMenuCategoryCode` |
| [MENU_FAVORITE](#menu-favorite) | Oracle | [unqualified]** | C/R/U/D | Stores per-user favorite menu-item bookmarks | `clsMenuFavorite` |
| [MENU_ITEM](#menu-item) | Oracle | [unqualified]** | C/R/U/D | Stores the core menu item (tree node) records | `clsMenuItem` |
| [MENU_PAGE](#menu-page) | Oracle | [unqualified]** | C/R/U/D | Stores page-level grouping of menu items with toolbar-flag configuration | `clsMenuPage` |
| [MENU_SECURITY](#menu-security) | Oracle | [unqualified]** | C/R/U/D | Associates menu items with security-group string values | `clsMenuSecurity` |
| [MENU_SECURITY_USER](#menu-security-user) | Oracle | [unqualified]** | C/R/U/D | Associates individual users with security-group records | `clsMenuSecurityUser` |

---

## BUSONLINE APPS CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores application identifiers (code + description) that scope menu pages to a given application. |
| **Access pattern** | Direct inline SQL |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | `CODE`, `CODE_DESCR`, `ACTIVE_CODE` |
| **Sequence** | N/A |
| **Related tables** | `MENU_PAGE` (joined on `APPLICATION_CODE = CODE`) |
| **Business objects** | `clsApplicationCode`, `clsApplicationCodeCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Application code scoping](operations/application-code-scoping.md)
- [Menu authorization data lookup](operations/menu-authorization-data-lookup.md)

### Business rules referencing this table
- [BR-MNU-02: DML row-count enforcement](business-rules.md#br-mnu-02-dml-row-count-enforcement)
- [BR-MNU-03: Active application code filtering](business-rules.md#br-mnu-03-active-application-code-filtering)

### SQL referencing this table
- [SQL-005: Insert application code](sql/SQL-005-saif-business-menu.md)
- [SQL-012: Retrieve application code by key](sql/SQL-012-saif-business-menu.md)
- [SQL-013: Retrieve active application codes](sql/SQL-013-saif-business-menu.md)
- [SQL-014: Retrieve all application codes](sql/SQL-014-saif-business-menu.md)
- [SQL-015: Retrieve all authorized menu items](sql/SQL-015-saif-business-menu.md)
- [SQL-016: Retrieve authorized menu items for user](sql/SQL-016-saif-business-menu.md)
- [SQL-031: Update application code](sql/SQL-031-saif-business-menu.md)
- [SQL-038: Delete application code](sql/SQL-038-saif-business-menu.md)

---

## DUAL

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | Oracle system object* |
| **Purpose** | Oracle system table used exclusively to retrieve the next value from Oracle sequences (`NEXTVAL FROM DUAL`). |
| **Access pattern** | Direct inline SQL |
| **CRUD operations** | Read (sequence generation only) |
| **Key columns used** | N/A (no column selected — only NEXTVAL expression) |
| **Sequence** | `MENU_FAVORITE_SEQ`, `MENU_ITEM_SEQ`, `MENU_PAGE_SEQ`, `MENU_SECURITY_SEQ` |
| **Related tables** | N/A |
| **Business objects** | `clsMenuFavorite`, `clsMenuItem`, `clsMenuPage`, `clsMenuSecurity` |

### SQL referencing this table
- [SQL-001: Generate MENU_FAVORITE_SEQ next value](sql/SQL-001-saif-business-menu.md)
- [SQL-002: Generate MENU_ITEM_SEQ next value](sql/SQL-002-saif-business-menu.md)
- [SQL-003: Generate MENU_PAGE_SEQ next value](sql/SQL-003-saif-business-menu.md)
- [SQL-004: Generate MENU_SECURITY_SEQ next value](sql/SQL-004-saif-business-menu.md)

---

## MENU CATEGORY CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores category codes and descriptions that classify menu items. |
| **Access pattern** | Direct inline SQL |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | `MENU_ITEM` (joined on `MENU_CATEGORY_CODE = CODE`) |
| **Business objects** | `clsMenuCategoryCode`, `clsMenuCategoryCodeCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Menu categorization](operations/menu-categorization.md)
- [Menu authorization data lookup](operations/menu-authorization-data-lookup.md)

### Business rules referencing this table
- [BR-MNU-02: DML row-count enforcement](business-rules.md#br-mnu-02-dml-row-count-enforcement)

### SQL referencing this table
- [SQL-006: Insert menu category code](sql/SQL-006-saif-business-menu.md)
- [SQL-015: Retrieve all authorized menu items](sql/SQL-015-saif-business-menu.md)
- [SQL-016: Retrieve authorized menu items for user](sql/SQL-016-saif-business-menu.md)
- [SQL-017: Retrieve menu category code by key](sql/SQL-017-saif-business-menu.md)
- [SQL-018: Retrieve all menu category codes](sql/SQL-018-saif-business-menu.md)
- [SQL-032: Update menu category code](sql/SQL-032-saif-business-menu.md)
- [SQL-039: Delete menu category code](sql/SQL-039-saif-business-menu.md)

---

## MENU FAVORITE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores per-user bookmarks to frequently used menu items, including display order and optional deactivation date. |
| **Access pattern** | Direct inline SQL |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | `MENU_FAVORITE_SEQ_NUM`, `MENU_USER`, `MENU_USER_EMPLID`, `MENU_ITEM_SEQ_NUM`, `MENU_ORDER_NUM`, `ITEM_INACTIVE_DATE` |
| **Sequence** | `MENU_FAVORITE_SEQ` |
| **Related tables** | `MENU_ITEM` (joined on `MENU_ITEM_SEQ_NUM`) |
| **Business objects** | `clsMenuFavorite`, `clsMenuFavoriteCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Favorite menu management](operations/favorite-menu-management.md)
- [Menu authorization data lookup](operations/menu-authorization-data-lookup.md)

### Business rules referencing this table
- [BR-MNU-02: DML row-count enforcement](business-rules.md#br-mnu-02-dml-row-count-enforcement)
- [BR-MNU-05: Favorite active-status enforcement](business-rules.md#br-mnu-05-favorite-active-status-enforcement)

### SQL referencing this table
- [SQL-001: Generate MENU_FAVORITE_SEQ next value](sql/SQL-001-saif-business-menu.md)
- [SQL-007: Insert menu favorite](sql/SQL-007-saif-business-menu.md)
- [SQL-016: Retrieve authorized menu items for user](sql/SQL-016-saif-business-menu.md)
- [SQL-019: Retrieve menu favorite by key](sql/SQL-019-saif-business-menu.md)
- [SQL-020: Retrieve favorites by user ID](sql/SQL-020-saif-business-menu.md)
- [SQL-021: Retrieve all menu favorites](sql/SQL-021-saif-business-menu.md)
- [SQL-033: Update menu favorite](sql/SQL-033-saif-business-menu.md)
- [SQL-040: Delete menu favorite](sql/SQL-040-saif-business-menu.md)

---

## MENU ITEM

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores core menu-item records (tree nodes), including page association, category, tooltip, visibility flag, and display order. |
| **Access pattern** | Direct inline SQL |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | `MENU_ITEM_SEQ_NUM`, `MENU_PAGE_SEQ_NUM`, `MENU_CATEGORY_CODE`, `TOOL_TIP_TXT`, `VISIBLE_FLAG`, `PAGE_ORDER_NUM`, `UPDATE_DATE`, `UPDATE_USER` |
| **Sequence** | `MENU_ITEM_SEQ` |
| **Related tables** | `MENU_PAGE` (parent), `MENU_CATEGORY_CODE` (lookup), `MENU_SECURITY` (child), `MENU_FAVORITE` (child) |
| **Business objects** | `clsMenuItem`, `clsMenuItemCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Menu tree construction](operations/menu-tree-construction.md)
- [Menu authorization data lookup](operations/menu-authorization-data-lookup.md)

### Business rules referencing this table
- [BR-MNU-01: Menu item visibility determined by security-group or user mapping](business-rules.md#br-mnu-01-menu-item-visibility-determined-by-security-group-or-user-mapping)
- [BR-MNU-02: DML row-count enforcement](business-rules.md#br-mnu-02-dml-row-count-enforcement)

### SQL referencing this table
- [SQL-002: Generate MENU_ITEM_SEQ next value](sql/SQL-002-saif-business-menu.md)
- [SQL-008: Insert menu item](sql/SQL-008-saif-business-menu.md)
- [SQL-015: Retrieve all authorized menu items](sql/SQL-015-saif-business-menu.md)
- [SQL-016: Retrieve authorized menu items for user](sql/SQL-016-saif-business-menu.md)
- [SQL-022: Retrieve menu item by key](sql/SQL-022-saif-business-menu.md)
- [SQL-023: Retrieve all menu items](sql/SQL-023-saif-business-menu.md)
- [SQL-034: Update menu item](sql/SQL-034-saif-business-menu.md)
- [SQL-041: Delete menu item](sql/SQL-041-saif-business-menu.md)

---

## MENU PAGE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores page-level grouping records for menu items, including application association, page links, toolbar-button visibility flags, and tooltip text for each button. |
| **Access pattern** | Direct inline SQL (StringBuilder-assembled for insert/update) |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | `MENU_PAGE_SEQ_NUM`, `PAGE_NAME`, `PAGE_LINK_TXT`, `APPLICATION_CODE`, `FAVORITE_NAME`, `SAVE_PREFERENCES_FLAG`, `PRINT_FLAG`, `DOWNLOAD_FLAG`, `HELP_FLAG`, `SAVE_FLAG`, `INSERT_FLAG`, `DELETE_FLAG`, `PRINT_TIP_TXT`, `DOWNLOAD_TIP_TXT`, `SAVE_TOOLTIP_TXT`, `INSERT_TOOLTIP_TXT`, `DELETE_TOOLTIP_TXT`, `UPDATE_DATE`, `UPDATE_USER` |
| **Sequence** | `MENU_PAGE_SEQ` |
| **Related tables** | `BUSONLINE_APPS_CODE` (parent on `APPLICATION_CODE`), `MENU_ITEM` (child) |
| **Business objects** | `clsMenuPage`, `clsMenuPageCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Menu tree construction](operations/menu-tree-construction.md)
- [Menu authorization data lookup](operations/menu-authorization-data-lookup.md)

### Business rules referencing this table
- [BR-MNU-02: DML row-count enforcement](business-rules.md#br-mnu-02-dml-row-count-enforcement)

### SQL referencing this table
- [SQL-003: Generate MENU_PAGE_SEQ next value](sql/SQL-003-saif-business-menu.md)
- [SQL-009: Insert menu page](sql/SQL-009-saif-business-menu.md)
- [SQL-015: Retrieve all authorized menu items](sql/SQL-015-saif-business-menu.md)
- [SQL-016: Retrieve authorized menu items for user](sql/SQL-016-saif-business-menu.md)
- [SQL-024: Retrieve menu page by key](sql/SQL-024-saif-business-menu.md)
- [SQL-025: Retrieve all menu pages](sql/SQL-025-saif-business-menu.md)
- [SQL-035: Update menu page](sql/SQL-035-saif-business-menu.md)
- [SQL-042: Delete menu page](sql/SQL-042-saif-business-menu.md)

---

## MENU SECURITY

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Associates a menu item with a security-group string tag used to determine which users can see that item. |
| **Access pattern** | Direct inline SQL |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | `MENU_SECURITY_SEQ_NUM`, `MENU_ITEM_SEQ_NUM`, `SECURITY_GROUP_TXT`, `UPDATE_DATE`, `UPDATE_USER` |
| **Sequence** | `MENU_SECURITY_SEQ` |
| **Related tables** | `MENU_ITEM` (parent), `MENU_SECURITY_USER` (related via `SECURITY_GROUP_TXT`) |
| **Business objects** | `clsMenuSecurity`, `clsMenuSecurityCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Menu authorization data lookup](operations/menu-authorization-data-lookup.md)

### Business rules referencing this table
- [BR-MNU-01: Menu item visibility determined by security-group or user mapping](business-rules.md#br-mnu-01-menu-item-visibility-determined-by-security-group-or-user-mapping)
- [BR-MNU-02: DML row-count enforcement](business-rules.md#br-mnu-02-dml-row-count-enforcement)
- [BR-MNU-04: Case-insensitive security-group matching](business-rules.md#br-mnu-04-case-insensitive-security-group-matching)

### SQL referencing this table
- [SQL-004: Generate MENU_SECURITY_SEQ next value](sql/SQL-004-saif-business-menu.md)
- [SQL-010: Insert menu security](sql/SQL-010-saif-business-menu.md)
- [SQL-015: Retrieve all authorized menu items](sql/SQL-015-saif-business-menu.md)
- [SQL-016: Retrieve authorized menu items for user](sql/SQL-016-saif-business-menu.md)
- [SQL-026: Retrieve menu security by key](sql/SQL-026-saif-business-menu.md)
- [SQL-027: Retrieve menu security by menu item](sql/SQL-027-saif-business-menu.md)
- [SQL-028: Retrieve all menu security records](sql/SQL-028-saif-business-menu.md)
- [SQL-036: Update menu security](sql/SQL-036-saif-business-menu.md)
- [SQL-043: Delete menu security](sql/SQL-043-saif-business-menu.md)

---

## MENU SECURITY USER

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Associates individual users with security-group records, enabling the authorized-item UNION queries to match users to menu items by security group. |
| **Access pattern** | Direct inline SQL |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | `MENU_SECURITY_USER_SEQ_NUM`, `SECURITY_GROUP_TXT`, `MENU_USER`, `MENU_USER_ID`, `MENU_USER_EMPLID` |
| **Sequence** | `MENU_SECURITY_USER_SEQ` (used inline in `InsertSQL` via `MENU_SECURITY_USER_SEQ.NEXTVAL`) |
| **Related tables** | `MENU_SECURITY` (related via `SECURITY_GROUP_TXT`) |
| **Business objects** | `clsMenuSecurityUser`, `clsMenuSecurityUserCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Menu authorization data lookup](operations/menu-authorization-data-lookup.md)

### Business rules referencing this table
- [BR-MNU-01: Menu item visibility determined by security-group or user mapping](business-rules.md#br-mnu-01-menu-item-visibility-determined-by-security-group-or-user-mapping)
- [BR-MNU-02: DML row-count enforcement](business-rules.md#br-mnu-02-dml-row-count-enforcement)
- [BR-MNU-04: Case-insensitive security-group matching](business-rules.md#br-mnu-04-case-insensitive-security-group-matching)

### SQL referencing this table
- [SQL-011: Insert menu security user](sql/SQL-011-saif-business-menu.md)
- [SQL-015: Retrieve all authorized menu items](sql/SQL-015-saif-business-menu.md)
- [SQL-016: Retrieve authorized menu items for user](sql/SQL-016-saif-business-menu.md)
- [SQL-029: Retrieve security users by MenuUser](sql/SQL-029-saif-business-menu.md)
- [SQL-030: Retrieve all menu security users](sql/SQL-030-saif-business-menu.md)
- [SQL-037: Update menu security user](sql/SQL-037-saif-business-menu.md)
- [SQL-044: Delete menu security user](sql/SQL-044-saif-business-menu.md)

---

## Table relationship diagram

The following diagram shows relationships between tables used by this library.

```mermaid
erDiagram
    BUSONLINE_APPS_CODE ||--o{ MENU_PAGE : "APPLICATION_CODE = CODE"
    MENU_PAGE ||--o{ MENU_ITEM : "MENU_PAGE_SEQ_NUM"
    MENU_CATEGORY_CODE ||--o{ MENU_ITEM : "MENU_CATEGORY_CODE = CODE"
    MENU_ITEM ||--o{ MENU_SECURITY : "MENU_ITEM_SEQ_NUM"
    MENU_ITEM ||--o{ MENU_FAVORITE : "MENU_ITEM_SEQ_NUM"
    MENU_SECURITY }o--o{ MENU_SECURITY_USER : "SECURITY_GROUP_TXT (upper-cased)"
```



## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [SQL catalog](sql/index.md)
- [API reference](api/index.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with `**` could not be confirmed; treat as unknown until verified.

## Sources
- `Business\SAIF.Business.Menu\clsApplicationCode.vb`
- `Business\SAIF.Business.Menu\clsApplicationCodeCollection.vb`
- `Business\SAIF.Business.Menu\clsMenuAuthorizedItemCollection.vb`
- `Business\SAIF.Business.Menu\clsMenuCategoryCode.vb`
- `Business\SAIF.Business.Menu\clsMenuCategoryCodeCollection.vb`
- `Business\SAIF.Business.Menu\clsMenuFavorite.vb`
- `Business\SAIF.Business.Menu\clsMenuFavoriteCollection.vb`
- `Business\SAIF.Business.Menu\clsMenuItem.vb`
- `Business\SAIF.Business.Menu\clsMenuItemCollection.vb`
- `Business\SAIF.Business.Menu\clsMenuPage.vb`
- `Business\SAIF.Business.Menu\clsMenuPageCollection.vb`
- `Business\SAIF.Business.Menu\clsMenuSecurity.vb`
- `Business\SAIF.Business.Menu\clsMenuSecurityCollection.vb`
- `Business\SAIF.Business.Menu\clsMenuSecurityUser.vb`
- `Business\SAIF.Business.Menu\clsMenuSecurityUserCollection.vb`
- `Business\SAIF.Business.Menu\app.config`
