> ## Content Index
> Fetch the complete content index at: https://nolongerset.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# The 13 Kinds of Business Application Tables
- URL: https://nolongerset.com/business-app-tables/
- Published: 2022-05-27T18:47:09.000Z
- Updated: 2026-05-08T12:57:19.000Z
- Description: Database tables in a line-of-business application generally fall into one of these thirteen categories.
- Author: Mike Wolfe
- Tags: Database Design, #Import 2026-05-20 02:59

I've spent 15 years designing, developing, and maintaining dozens of business applications.

During that time, I've noticed the database tables in a business application typically fall into one of the following categories:

1. **Main tables**: these are the tables that sit in the middle of a database diagram with multiple connections to detail tables, lookup tables, bridge tables, and large-field tables (these tables get [Tabbed Master-Detail Forms](https://nolongerset.com/tabbed-master-detail-form/) in my applications)  
↳*e.g.:* ***Invoice*** *table*
2. **Detail tables**: think of these as "sub-tables" of the Main tables (these tables populate subforms on the tabs to the right of a [Master-Detail form](https://nolongerset.com/tabbed-master-detail-form/) in my apps)  
 ↳*e.g.:* ***InvoiceItem*** *table*
3. **Lookup tables**: in my apps, these tables typically have three fields: (1) an autonumber primary key, (2) [an abbreviated 2-5 character code](https://nolongerset.com/abbreviations-in-lookup-tables/), and (3) a full description; they are usually represented with combo boxes  
↳*e.g.: *lu** ***ProductCategory*** *table*
4. **Bridge tables**: the tables that sit in the middle of a many-to-many relationship  
↳*e.g.:* ***Product\_Supplier*** *table*
5. **Large field tables**: one-to-one tables that hold things like BLOBs (varbinary(max)) and non-indexable nvarchar(max) fields; these generally have only two fields: the primary key of the associated table and the large object/text  
↳*e.g.:* ***Dwelling-Sketch*** *table*
6. **Temporary tables**: used for performance reasons or as a workaround for non-updateable query errors  
↳*e.g.: *temp** ***InvoiceAgingReport*** *table*
7. **Denormalized tables**: these are tables whose values have a dependency on data in other tables; may be used in ***rare*** situations for performance reasons; they require special care to maintain, so should be avoided if at all possible  
↳*e.g.:* ***CurrentInventory*** *table*
8. **Settings tables**: [single-row tables](https://nolongerset.com/single-row-table-how-to/) used to hold global client settings, such as network folder locations  
↳*e.g.:* ***GlobalParams*** *table*
9. **Staging tables**: temporary tables specifically used to support data validation and cleanup processes when importing from external sources;  
↳*e.g.:* ***StripeTransactionImport*** *table*
10. **System tables**: local tables whose *data* impact program logic; I [export the contents of these tables into version control](https://nolongerset.com/tables-to-text-do-it-for-the-dvcs/#design-time-data)  
↳*e.g.:* ***eSyncTables*** *table (note: the "e" prefix stands for "embedded" in my table naming convention)*
11. **Audit tables**: tables that track changes to data over time for auditing purposes; these generally include a date/timestamp of when the change was made and by whom  
↳*e.g.:* ***VendorHistory*** *table*
12. **Log tables**: "used to maintain a log of imported files so the user can see what they imported over time" -Laurie Almoslino  
↳*e.g.:* ***FileImportLog*** *table*
13. **Version/Changelog tables**: a table to track changes made to the front-end application over time; change notes may be user- and/or developer-centric  
↳*e.g.:* ***Changelog*** *table*

Special thanks to Joakim Dalby, Ben Clothier, and Laurie Almoslino for contributing additional categories beyond my original list of seven.

What did I miss? Let me know in the comments below.

### Referenced articles

[Tabbed Master-Detail FormThe tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.![](https://nolongerset.com/favicon.png)No Longer SetMike Wolfe![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2022/01/Tabbed-Master-Detail-Form.jpg)](https://nolongerset.com/tabbed-master-detail-form/)

[Abbreviations in Lookup TablesOne way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.![](https://nolongerset.com/favicon.png)No Longer SetMike Wolfe![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2022/05/Lookup-Table-Abbreviations.jpg)](https://nolongerset.com/abbreviations-in-lookup-tables/)

[Enforcing a Single-Row Table in MS Access and SQL ServerThere are many uses for a table with one--and only one--row in it. Using such a table is simpler if you can rely on the sanctity of its one-row-ness.![](https://nolongerset.com/favicon.png)No Longer SetMike Wolfe![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2021/07/sunrise-3848628_1920.jpg)](https://nolongerset.com/single-row-table-how-to/)

*Image by [Lubos Houska](https://pixabay.com/users/luboshouska-198496/?utm%5Fsource=link-attribution&utm%5Fmedium=referral&utm%5Fcampaign=image&utm%5Fcontent=1213008) from [Pixabay](https://pixabay.com/?utm%5Fsource=link-attribution&utm%5Fmedium=referral&utm%5Fcampaign=image&utm%5Fcontent=1213008)*

***UPDATED*** *\[2022-05-27\]: Added category 8, "Settings tables." (h/t Joakim Dalby on [LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:6936025052563853312?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A6936025052563853312%2C6936028605068029952%29))*

***UPDATED*** *\[2022-05-29\]: Added category 9, "Staging tables." (h/t Ben Clothier in comments below)*

***UPDATED*** *\[2022-05-29\]: Added categories 10 - 13, "System, Audit, Log, Changelog tables." (h/t Laurie Almoslino in comments below)*