Access Database Design
A poorly designed Access database produces bad data. Not eventually, but from the first week of use: duplicate records, inconsistent entries, reports that cannot be trusted, and queries that return different results depending on who ran them. PCG designs Access databases from the table structure up, before a single form is built, so the data that comes out is accurate and the application does not need to be rebuilt in two years.
Why does database design matter more than the forms and reports people actually see?
The forms and reports are what users interact with. The table structure is what determines whether the data those forms collect is usable. A database with poorly designed tables produces data that cannot be reliably queried, reported on, or migrated to a larger platform when the business eventually needs one. Most Access databases that PCG is called in to rescue were built by starting with the form rather than the table structure. The forms look reasonable. The data underneath them is a mess.
In 2026, the cost of bad database design shows up in three ways: staff time spent manually reconciling records that the database should be reconciling automatically, reports that require manual cleanup before they can be trusted, and migration projects that take twice as long as they should because the source data has to be cleaned before it can move. PCG designs the structure first so none of those costs accumulate.
What are the two principles that drive every PCG database design?
Eliminate redundant data before it enters the system
The same piece of information stored in two places is not a backup. It is a source of inconsistency. When a customer's name appears in three tables and gets updated in only one, the database is now producing three different versions of a fact. PCG designs table structures that store each piece of information once, in the right place, with relationships that pull it wherever it is needed rather than copying it into multiple locations.
Enforce data integrity at the table level, not the form level
Validation rules applied only to forms can be bypassed. A user who imports a spreadsheet, runs a direct query, or uses a different form bypasses every validation rule that was not built into the table itself. PCG builds data integrity constraints into the table structure: required fields, data type enforcement, referential integrity between related tables, and default values where appropriate. The data is correct because the architecture requires it to be correct.
What does bad Access database design actually look like, and what does it cost?
The following design failures appear in the majority of Access databases PCG is asked to repair or migrate. Each one has a measurable operational cost that compounds as the database grows.
| Design Failure | What It Produces | Operational Cost |
|---|---|---|
| No primary keys on tables | Duplicate records accumulate with no reliable way to identify or remove them | Data deduplication required before any meaningful analysis or migration |
| Multiple pieces of information in one field | A "name" field containing first name, last name, and title; an "address" field containing street, city, state, and ZIP | Cannot sort, filter, or report on any individual component without manual parsing |
| Redundant data across multiple tables | Customer name stored in orders, invoices, and contacts tables independently | Updates in one place do not propagate; database produces conflicting facts about the same entity |
| No referential integrity enforced | Child records (orders, invoices) exist without parent records (customers, products) | Orphaned records corrupt reports and cause query errors that are difficult to diagnose |
| Calculated values stored as fields | A "total" field that stores a calculated result rather than deriving it from component values | Totals go out of sync when component values change; reports produce inconsistent results |
| All data in one table | A single flat table with hundreds of columns instead of normalized related tables | Performance degrades sharply as row count grows; migration to SQL Server requires full restructuring |
Every one of these failures is preventable at design time. Correcting them after data has accumulated typically takes longer than building the database correctly from the start, because the existing data has to be cleaned and restructured before it can move into a properly designed schema.
What does PCG's Access database design process actually involve?
PCG follows a structured eight-step design process for every Access database project. The process is not a checklist of abstract principles. Each step produces a concrete output that feeds into the next step and determines what gets built.
Define the purpose and the output
Before designing a single table, PCG establishes what the database needs to produce: which reports, which exports, which queries your operation depends on. The output requirements determine the table structure. A database designed without knowing what it needs to report will produce tables that cannot generate the reports without significant restructuring.
Inventory the existing data
PCG collects the data you are currently working with: spreadsheets, paper forms, existing databases, or verbal descriptions of what gets captured. This inventory identifies every field that needs to exist in the new design and surfaces data quality issues in the source material that need to be resolved before the new database is built.
Divide information into subject-based tables
Each table in a correctly designed database holds information about one subject. Customers in one table. Orders in another. Products in a third. PCG identifies the subjects the database needs to track, assigns each field to the correct subject table, and eliminates every instance of the same information appearing in more than one place.
Define columns and data types
Each piece of information becomes a column with a defined data type, length, and constraint. PCG ensures that composite fields are broken into their components (first name and last name as separate fields, not one), that data types match the actual data being stored, and that fields that should never be empty are marked as required at the table level rather than only at the form level.
Establish primary keys
Every table gets a primary key: a field or combination of fields that uniquely identifies each record. PCG selects primary keys that are stable (not likely to change), unique, and meaningful for the data model. Auto-number fields are used where natural keys do not exist or where stability is a concern.
Define table relationships and enforce referential integrity
PCG defines the relationships between tables using foreign keys and enforces referential integrity at the database level. This prevents orphaned records, ensures that related data stays consistent when records are updated or deleted, and gives the query engine the relationship information it needs to join tables correctly without performance penalties.
Test the design against real queries
Before any forms or reports are built, PCG tests the table structure against the output requirements identified in step one. Can the database produce the reports the business needs? Do the joins between tables return correct results? Are there any query scenarios that the current design cannot support? Problems identified at this stage cost a fraction of what they cost to fix after the database is populated with live data.
Apply normalization and finalize the schema
PCG applies database normalization rules to eliminate remaining redundancy and ensure the schema is structurally clean. The normalized schema becomes the foundation for form development, report building, and VBA automation. It also becomes the migration map if the database eventually moves to SQL Server, reducing migration effort significantly compared to migrating an unnormalized Access schema.
What does PCG need to design an Access database for your operation?
Database design starts with understanding the business process, not the technology. PCG needs to know what you are tracking, what decisions the database needs to support, and what the output has to look like. The design conversation takes one to two hours for most projects and produces a schema that both PCG and your team can review before any development begins.
- A description of what you are tracking. Customers, orders, inventory, compliance records, inspection findings, employee credentials: the subjects define the table structure. PCG needs to know every category of information the database has to manage.
- Samples of your existing data. An existing spreadsheet, a paper form, or a printout from a current system. PCG uses this to identify every field that needs to exist, surface data quality issues in the source material, and verify that the proposed design can accommodate the actual data rather than an idealized version of it.
- The reports and outputs you need. What does the database need to produce? Which reports does your operation run regularly? What data exports does your team use? The output requirements drive the table design as much as the input requirements do.
- Any future requirements you can anticipate. A database designed only for today's requirements often requires structural changes when requirements grow. If you expect to add users, increase data volume, or integrate with other systems within two to three years, PCG designs for those requirements now so the migration does not require rebuilding from scratch.
PCG designs the database. You own it. Every Access database design PCG delivers includes the complete schema documentation: table definitions, field specifications, relationship diagrams, and normalization notes. You receive this documentation along with the database itself at project completion.
If you want to modify the database later, hand it to another developer, or use the schema as the basis for a SQL Server migration, you have everything you need to do that without returning to PCG. That has been the standard since 1995.
1 Database design failure patterns documented from PCG repair and migration engagement audits across more than 200 Access databases assessed between 2015 and 2026.
2 Normalization methodology based on Codd's relational database normalization rules (1NF through 3NF) as applied to Microsoft Access table architecture.
Frequently Asked Questions
Allison has been designing relational databases since the early 1980s, predating PCG's founding in 1995. She has designed Access database schemas across environmental compliance, healthcare staffing, fleet management, manufacturing operations, and custom business process systems, and has repaired or rebuilt hundreds of Access databases where poor initial design accumulated into a structural problem the business could no longer work around.
The pattern she has seen consistently across more than 30 years: the databases that require emergency rescue are almost always the ones that were built starting with the form rather than the table structure. Good design at the start prevents that call. PCG answers the phone either way.