---
title: "SAIF.Business.Menu database tables"
summary: "Database tables used by this library with relationships and usage context."
status: draft
owner: SAIF documentation team
last_reviewed: 2026-08-17
library: SAIF.Business.Menu
reference_type: package
---

# SAIF.Business.Menu database tables

This page catalogs the Oracle tables accessed by `SAIF.Business.Menu`.

## Table catalog

| Table | Database | Schema/Link | CRUD | Purpose | Primary business object |
| --- | --- | --- | --- | --- | --- |
| [BUSONLINE_APPS_CODE](#busonlineappscode) | Oracle | [unqualified]** | C, R, U, D | Stores application-code to application-path mappings. | `clsApplicationCode` |
| [MENU_CATEGORY_CODE](#menucategorycode) | Oracle | [unqualified]** | C, R, U, D | Stores menu category codes and descriptions. | `clsMenuCategoryCode` |
| [MENU_PAGE](#menupage) | Oracle | [unqualified]** | C, R, U, D | Stores page definitions, favorite labels, flags, and tooltips. | `clsMenuPage` |
| [MENU_ITEM](#menuitem) | Oracle | [unqualified]** | C, R, U, D | Stores menu items, page links, categories, order, and visibility. | `clsMenuItem` |
| [MENU_SECURITY](#menusecurity) | Oracle | [unqualified]** | C, R, U, D | Stores security groups assigned to menu items. | `clsMenuSecurity` |
| [MENU_SECURITY_USER](#menusecurityuser) | Oracle | [unqualified]** | C, R, U, D | Stores user-to-security-group memberships. | `clsMenuSecurityUser` |
| [MENU_FAVORITE](#menufavorite) | Oracle | [unqualified]** | C, R, U, D | Stores per-user favorite items, order, and inactive date. | `clsMenuFavorite` |

## BUSONLINE_APPS_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores application-code to application-path mappings. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | C, R, U, D |
| **Key columns used** | `CODE`, `CODE_DESCR`, `ACTIVE_CODE` |
| **Sequence** | N/A |
| **Related tables** | MENU_PAGE |
| **Business objects** | `clsApplicationCode`, `clsApplicationCodeCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Build a user's authorized menu](operations/build-authorized-menu.md)
- [Maintain reference data](operations/maintain-reference-data.md)

### Business rules referencing this table
- None documented.

### SQL referencing this table
- [SQL-MENU-001: Delete application code](sql/SQL-MENU-001-delete-application-code.md)
- [SQL-MENU-002: Insert application code](sql/SQL-MENU-002-insert-application-code.md)
- [SQL-MENU-003: Retrieve application code](sql/SQL-MENU-003-retrieve-application-code.md)
- [SQL-MENU-004: Update application code](sql/SQL-MENU-004-update-application-code.md)
- [SQL-MENU-005: Retrieve all application codes](sql/SQL-MENU-005-retrieve-all-application-codes.md)
- [SQL-MENU-006: Retrieve active application codes](sql/SQL-MENU-006-retrieve-active-application-codes.md)
- [SQL-MENU-043: Retrieve authorized menu items for user](sql/SQL-MENU-043-retrieve-authorized-menu-items-for-user.md)
- [SQL-MENU-044: Retrieve all authorized menu items](sql/SQL-MENU-044-retrieve-all-authorized-menu-items.md)

---
## MENU_CATEGORY_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores menu category codes and descriptions. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | C, R, U, D |
| **Key columns used** | `CODE`, `CODE_DESCR` |
| **Sequence** | N/A |
| **Related tables** | MENU_ITEM |
| **Business objects** | `clsMenuCategoryCode`, `clsMenuCategoryCodeCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Build a user's authorized menu](operations/build-authorized-menu.md)
- [Maintain a menu item together with its security-group assignments](operations/maintain-menu-item-security.md)
- [Maintain reference data](operations/maintain-reference-data.md)

### Business rules referencing this table
- None documented.

### SQL referencing this table
- [SQL-MENU-007: Delete menu category code](sql/SQL-MENU-007-delete-menu-category-code.md)
- [SQL-MENU-008: Insert menu category code](sql/SQL-MENU-008-insert-menu-category-code.md)
- [SQL-MENU-009: Retrieve menu category code](sql/SQL-MENU-009-retrieve-menu-category-code.md)
- [SQL-MENU-010: Update menu category code](sql/SQL-MENU-010-update-menu-category-code.md)
- [SQL-MENU-011: Retrieve all menu category codes](sql/SQL-MENU-011-retrieve-all-menu-category-codes.md)
- [SQL-MENU-014: Insert menu item](sql/SQL-MENU-014-insert-menu-item.md)
- [SQL-MENU-015: Retrieve menu item](sql/SQL-MENU-015-retrieve-menu-item.md)
- [SQL-MENU-016: Update menu item](sql/SQL-MENU-016-update-menu-item.md)
- [SQL-MENU-017: Retrieve all menu items](sql/SQL-MENU-017-retrieve-all-menu-items.md)
- [SQL-MENU-043: Retrieve authorized menu items for user](sql/SQL-MENU-043-retrieve-authorized-menu-items-for-user.md)
- [SQL-MENU-044: Retrieve all authorized menu items](sql/SQL-MENU-044-retrieve-all-authorized-menu-items.md)

---
## MENU_PAGE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores page definitions, favorite labels, flags, and tooltips. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | C, R, U, D |
| **Key columns used** | `MENU_PAGE_SEQ_NUM`, `PAGE_LINK_TXT`, `APPLICATION_CODE` |
| **Sequence** | `MENU_PAGE_SEQ` |
| **Related tables** | BUSONLINE_APPS_CODE, MENU_ITEM |
| **Business objects** | `clsMenuPage`, `clsMenuPageCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Build a user's authorized menu](operations/build-authorized-menu.md)
- [Maintain a menu item together with its security-group assignments](operations/maintain-menu-item-security.md)
- [Maintain reference data](operations/maintain-reference-data.md)

### Business rules referencing this table
- [BR-MENU-004: Favorites are always included and ordered](business-rules.md#br-menu-004-favorites-are-always-included-and-ordered)

### SQL referencing this table
- [SQL-MENU-018: Fetch next menu page sequence value](sql/SQL-MENU-018-next-menu-page-sequence.md)
- [SQL-MENU-019: Delete menu page](sql/SQL-MENU-019-delete-menu-page.md)
- [SQL-MENU-020: Insert menu page](sql/SQL-MENU-020-insert-menu-page.md)
- [SQL-MENU-021: Retrieve menu page](sql/SQL-MENU-021-retrieve-menu-page.md)
- [SQL-MENU-022: Update menu page](sql/SQL-MENU-022-update-menu-page.md)
- [SQL-MENU-023: Retrieve all menu pages](sql/SQL-MENU-023-retrieve-all-menu-pages.md)
- [SQL-MENU-043: Retrieve authorized menu items for user](sql/SQL-MENU-043-retrieve-authorized-menu-items-for-user.md)
- [SQL-MENU-044: Retrieve all authorized menu items](sql/SQL-MENU-044-retrieve-all-authorized-menu-items.md)

---
## MENU_ITEM

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores menu items, page links, categories, order, and visibility. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | C, R, U, D |
| **Key columns used** | `MENU_ITEM_SEQ_NUM`, `MENU_PAGE_SEQ_NUM`, `MENU_CATEGORY_CODE`, `PAGE_ORDER_NUM` |
| **Sequence** | `MENU_ITEM_SEQ` |
| **Related tables** | MENU_PAGE, MENU_CATEGORY_CODE, MENU_SECURITY, MENU_FAVORITE |
| **Business objects** | `clsMenuItem`, `clsMenuItemCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Build a user's authorized menu](operations/build-authorized-menu.md)
- [Manage a user's menu favorites](operations/manage-menu-favorites.md)
- [Maintain a menu item together with its security-group assignments](operations/maintain-menu-item-security.md)

### Business rules referencing this table
- [BR-MENU-002: Unsecured menu items are visible by default](business-rules.md#br-menu-002-unsecured-menu-items-are-visible-by-default)
- [BR-MENU-003: Security-group matching is case-insensitive](business-rules.md#br-menu-003-security-group-matching-is-case-insensitive)
- [BR-MENU-005: Menu-item validity and dirtiness cascade to security groups](business-rules.md#br-menu-005-menu-item-validity-and-dirtiness-cascade-to-security-groups)
- [BR-MENU-006: Retrieve-all uses the UNSECURED wildcard sentinel](business-rules.md#br-menu-006-retrieve-all-uses-the-unsecured-wildcard-sentinel)

### SQL referencing this table
- [SQL-MENU-012: Fetch next menu item sequence value](sql/SQL-MENU-012-next-menu-item-sequence.md)
- [SQL-MENU-013: Delete menu item](sql/SQL-MENU-013-delete-menu-item.md)
- [SQL-MENU-014: Insert menu item](sql/SQL-MENU-014-insert-menu-item.md)
- [SQL-MENU-015: Retrieve menu item](sql/SQL-MENU-015-retrieve-menu-item.md)
- [SQL-MENU-016: Update menu item](sql/SQL-MENU-016-update-menu-item.md)
- [SQL-MENU-017: Retrieve all menu items](sql/SQL-MENU-017-retrieve-all-menu-items.md)
- [SQL-MENU-043: Retrieve authorized menu items for user](sql/SQL-MENU-043-retrieve-authorized-menu-items-for-user.md)
- [SQL-MENU-044: Retrieve all authorized menu items](sql/SQL-MENU-044-retrieve-all-authorized-menu-items.md)

---
## MENU_SECURITY

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores security groups assigned to menu items. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | C, R, U, D |
| **Key columns used** | `MENU_SECURITY_SEQ_NUM`, `MENU_ITEM_SEQ_NUM`, `SECURITY_GROUP_TXT` |
| **Sequence** | `MENU_SECURITY_SEQ` |
| **Related tables** | MENU_ITEM, MENU_SECURITY_USER |
| **Business objects** | `clsMenuSecurity`, `clsMenuSecurityCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Build a user's authorized menu](operations/build-authorized-menu.md)
- [Maintain a menu item together with its security-group assignments](operations/maintain-menu-item-security.md)

### Business rules referencing this table
- [BR-MENU-002: Unsecured menu items are visible by default](business-rules.md#br-menu-002-unsecured-menu-items-are-visible-by-default)
- [BR-MENU-003: Security-group matching is case-insensitive](business-rules.md#br-menu-003-security-group-matching-is-case-insensitive)
- [BR-MENU-005: Menu-item validity and dirtiness cascade to security groups](business-rules.md#br-menu-005-menu-item-validity-and-dirtiness-cascade-to-security-groups)
- [BR-MENU-006: Retrieve-all uses the UNSECURED wildcard sentinel](business-rules.md#br-menu-006-retrieve-all-uses-the-unsecured-wildcard-sentinel)

### SQL referencing this table
- [SQL-MENU-024: Fetch next menu security sequence value](sql/SQL-MENU-024-next-menu-security-sequence.md)
- [SQL-MENU-025: Delete menu security row](sql/SQL-MENU-025-delete-menu-security-row.md)
- [SQL-MENU-026: Insert menu security row](sql/SQL-MENU-026-insert-menu-security-row.md)
- [SQL-MENU-027: Retrieve menu security row](sql/SQL-MENU-027-retrieve-menu-security-row.md)
- [SQL-MENU-028: Update menu security row](sql/SQL-MENU-028-update-menu-security-row.md)
- [SQL-MENU-029: Retrieve all menu security rows](sql/SQL-MENU-029-retrieve-all-menu-security-rows.md)
- [SQL-MENU-030: Retrieve menu security for item](sql/SQL-MENU-030-retrieve-menu-security-for-item.md)
- [SQL-MENU-043: Retrieve authorized menu items for user](sql/SQL-MENU-043-retrieve-authorized-menu-items-for-user.md)
- [SQL-MENU-044: Retrieve all authorized menu items](sql/SQL-MENU-044-retrieve-all-authorized-menu-items.md)

---
## MENU_SECURITY_USER

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores user-to-security-group memberships. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | C, R, U, D |
| **Key columns used** | `MENU_SECURITY_USER_SEQ_NUM`, `MENU_USER`, `SECURITY_GROUP_TXT`, `MENU_USER_EMPLID` |
| **Sequence** | `MENU_SECURITY_USER_SEQ` (inline in INSERT) |
| **Related tables** | MENU_SECURITY |
| **Business objects** | `clsMenuSecurityUser`, `clsMenuSecurityUserCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Build a user's authorized menu](operations/build-authorized-menu.md)
- [Maintain reference data](operations/maintain-reference-data.md)

### Business rules referencing this table
- [BR-MENU-003: Security-group matching is case-insensitive](business-rules.md#br-menu-003-security-group-matching-is-case-insensitive)

### SQL referencing this table
- [SQL-MENU-031: Delete menu security user row](sql/SQL-MENU-031-delete-menu-security-user-row.md)
- [SQL-MENU-032: Insert menu security user row](sql/SQL-MENU-032-insert-menu-security-user-row.md)
- [SQL-MENU-033: Update menu security user row](sql/SQL-MENU-033-update-menu-security-user-row.md)
- [SQL-MENU-034: Retrieve all menu security user rows](sql/SQL-MENU-034-retrieve-all-menu-security-user-rows.md)
- [SQL-MENU-035: Retrieve menu security users for user](sql/SQL-MENU-035-retrieve-menu-security-users-for-user.md)
- [SQL-MENU-043: Retrieve authorized menu items for user](sql/SQL-MENU-043-retrieve-authorized-menu-items-for-user.md)
- [SQL-MENU-044: Retrieve all authorized menu items](sql/SQL-MENU-044-retrieve-all-authorized-menu-items.md)

---
## MENU_FAVORITE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | [unqualified]** |
| **Purpose** | Stores per-user favorite items, order, and inactive date. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | C, R, U, D |
| **Key columns used** | `MENU_FAVORITE_SEQ_NUM`, `MENU_USER`, `MENU_ITEM_SEQ_NUM`, `MENU_ORDER_NUM`, `ITEM_INACTIVE_DATE` |
| **Sequence** | `MENU_FAVORITE_SEQ` |
| **Related tables** | MENU_ITEM |
| **Business objects** | `clsMenuFavorite`, `clsMenuFavoriteCollection`, `clsMenuAuthorizedItemCollection` |

### Operations referencing this table
- [Build a user's authorized menu](operations/build-authorized-menu.md)
- [Manage a user's menu favorites](operations/manage-menu-favorites.md)

### Business rules referencing this table
- [BR-MENU-004: Favorites are always included and ordered](business-rules.md#br-menu-004-favorites-are-always-included-and-ordered)

### SQL referencing this table
- [SQL-MENU-036: Fetch next menu favorite sequence value](sql/SQL-MENU-036-next-menu-favorite-sequence.md)
- [SQL-MENU-037: Delete menu favorite](sql/SQL-MENU-037-delete-menu-favorite.md)
- [SQL-MENU-038: Insert menu favorite](sql/SQL-MENU-038-insert-menu-favorite.md)
- [SQL-MENU-039: Retrieve menu favorite](sql/SQL-MENU-039-retrieve-menu-favorite.md)
- [SQL-MENU-040: Update menu favorite](sql/SQL-MENU-040-update-menu-favorite.md)
- [SQL-MENU-041: Retrieve all menu favorites](sql/SQL-MENU-041-retrieve-all-menu-favorites.md)
- [SQL-MENU-042: Retrieve menu favorites for user](sql/SQL-MENU-042-retrieve-menu-favorites-for-user.md)
- [SQL-MENU-043: Retrieve authorized menu items for user](sql/SQL-MENU-043-retrieve-authorized-menu-items-for-user.md)

---

## Table relationship diagram

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

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

## 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)
- [Security and authorization](security-authorization.md)
- [SQL catalog](sql/index.md)
- [API reference](api/index.md)

> **Note:** Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources
- `SAIF.Business.Menu\clsApplicationCode.vb`
- `SAIF.Business.Menu\clsApplicationCodeCollection.vb`
- `SAIF.Business.Menu\clsMenuAuthorizedItemCollection.vb`
- `SAIF.Business.Menu\clsMenuCategoryCode.vb`
- `SAIF.Business.Menu\clsMenuFavorite.vb`
- `SAIF.Business.Menu\clsMenuItem.vb`
- `SAIF.Business.Menu\clsMenuPage.vb`
- `SAIF.Business.Menu\clsMenuSecurity.vb`
- `SAIF.Business.Menu\clsMenuSecurityCollection.vb`
- `SAIF.Business.Menu\clsMenuSecurityUser.vb`
- `SAIF.Business.Menu\clsMenuSecurityUserCollection.vb`
