---
title: SAIF.Presentation database tables
summary: Database tables used by this library with relationships and usage context.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation
reference_type: package
---

# SAIF.Presentation database tables

`SAIF.Presentation` issues **no direct SQL** and owns **no tables**. It connects to Oracle only to obtain a data portal (`clsMSOracleDataLayer("CLM", oracleDatabase)`) that it hands to `SAIF.Framework.Preferences.PreferenceData`, which performs the actual read and write against preference storage table(s) defined inside the `SAIF.BOF.Framework` package. Those table name(s) and schema cannot be determined from this repository.**

## Table catalog

No tables are directly referenced by SQL in this library. The library's only database touchpoint is an indirect Oracle connection used to obtain an `IDataPortalInfo` for the framework preference service.

| Table | Database | Schema/Link | CRUD | Purpose | Primary business object |
| --- | --- | --- | --- | --- | --- |
| _None (delegated)_ | Oracle (indirect) | Unknown — resides in the `SAIF.BOF.Framework` package under DB user `CLM` | N/A | Persistence delegated to `SAIF.Framework.Preferences.PreferenceData` | `clsPreferences` |

## Delegated data access

| Field | Value |
| --- | --- |
| **Connecting DB user** | `CLM` (hard-coded, `SAIF.Presentation/clsPreferences.vb` line 22) |
| **Environment resolution** | `AppGlobal.EnvironmentService.GetConfigSetting(EnvironmentConfigKeys.OracleDatabase)`† |
| **Read entry point** | `PreferenceData.GetPreferencesForUser(userId)` — called from [Construct and load a user's preferences](operations/construct-and-load-preferences.md) |
| **Write entry point** | `PreferenceData.SavePreferences(applicationName, pageName, userId, json)` — called from [Persist preferences](operations/persist-preferences.md) |
| **Owning package** | `SAIF.Framework.Preferences` (`SAIF.BOF.Framework` NuGet package) |

### Operations referencing this data access
- [Construct and load a user's preferences](operations/construct-and-load-preferences.md)
- [Persist preferences](operations/persist-preferences.md)

### Business rules referencing this data access
- [BR-PRES-002: Preference access uses the fixed Oracle user CLM](business-rules.md#br-pres-002-preference-access-uses-the-fixed-oracle-user-clm)
- [BR-PRES-023: Persistence always routed through PreferenceData](business-rules.md#br-pres-023-persistence-always-routed-through-preferencedata)

## Table relationship diagram

No cross-table relationships were identified in this library's SQL, because this library contains no SQL and references no tables directly.

## 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 ** could not be confirmed; treat as unknown until verified. Statements marked with † were retrieved from dependency library documentation via the Legends CLI RAG service. They describe inherited behavior from the indicated origin library and should be verified if the dependency version changes.

## Sources
- `SAIF.Presentation/clsPreferences.vb`
