Model your data right without being a developer
Customer names retyped everywhere, totals maintained by hand, one tab per year: most no-code bases reproduce the flaws of the spreadsheets they replace. Normalization is taught in SQL, but it takes three habits to practice in an Airtable-style base — without writing a line of code.
TL;DR
- Three habits cover the essentials of an SMB data model: one table per entity, links instead of copies, atomic typed fields.
- Normalization fits in one sentence from 1983: every field must state a fact about "the key, the whole key, and nothing but the key" — the entity of its own table, nothing else.
- In Airtable, the foreign key is called a linked record: the link is mirrored in the linked table and unlocks the lookup, count and rollup computed fields.
- A rollup aggregates linked records with 19 functions, on every plan: an order total calculates itself.
- Duplication costs quota: 1,000 records per base on Free, 50,000 on Team, 125,000 on Business (verified August 12, 2026).
- We connect 6 CRM/ERP systems to a single source of truth with zero manual re-entry (Ownward internal data, 2026): "link, don't copy" holds at every scale.
Three habits, not a SQL course
Data normalization is taught in SQL, with vocabulary that puts people off. Our claim: it works perfectly well in a no-code database, and three habits cover the bulk of everyday cases — one table per entity, links instead of copies, atomic fields. If you can create a field in Airtable, you can normalize.
The idea is not new. In 1970, in the very first sentence of his paper, E. F. Codd founded the relational model on a promise: future users must be
"protected from having to know how the data is organized in the machine" — E. F. Codd, CACM, 1970
Separating the meaning of data from its machinery: that is exactly what a no-code database does 55 years later. The theory has not changed; the tool has become accessible.
Why the schema is the real deliverable, we covered in model before you tool up; this article is its hands-on companion — only the how. "Spreadsheets used as databases" is one of the seven real starting points of our projects (Ownward internal data, 2026): here is what we fix first.
One table per entity, each fact recorded once
Microsoft's database design documentation — the mainstream reference, written without a line of SQL — rests on two principles: divide information into subject-based tables, and record each fact just once. Duplicated data, Microsoft writes, wastes space and increases the likelihood of errors and inconsistencies.
The habit: one table per entity — customers, orders, products. The test: if you type the same customer name into two tables, you are missing a table.
| What we often see | What to build instead |
|---|---|
| The customer retyped in every order | A Customers table, an Orders table, a linked field |
| "Projects 2024" and "Projects 2025" | One table, a date field, filtered views |
| One tab per sales rep | A single table with a linked Sales rep field |
Each fact lives with its owner; everything else is derived through links and computed fields, never through re-entry.
Links instead of copies
In 1983, William Kent condensed the second and third normal forms into one canonical sentence: a field must state a fact about "the key, the whole key, and nothing but the key." In business terms: every column describes the entity of its own table. The sales rep's email does not belong in the Orders table — it describes the rep.
In Airtable, this principle has a name: the linked record field. It creates a bidirectional relationship, automatically mirrored in the linked table. It is the SQL foreign key without the word or the syntax: you link, you don't retype.
The link then unlocks two computed fields that eliminate re-entry:
- the lookup displays a value from the linked record without copying it — the value stays with its owner;
- the rollup aggregates linked records — sum, average, count, among 19 functions, on every plan. An order total calculates itself from its lines.
Airtable's documentation states the benefit plainly: linking records minimizes redundant data entry while ensuring the latest information is available everywhere. Kent, for his part, reminded us that normalization rules exist to prevent update anomalies and data inconsistencies — not an academic exercise, an insurance policy.
What doing nothing costs — Every copied value is an inconsistency waiting to happen: the reference research on spreadsheet risk (EuSpRIG, 2000 — historical) found errors in at least 86% of spreadsheets audited from 1997 onward. Duplication also costs quota: 1,000 records per base on Free, 50,000 on Team ($20/seat/month), 125,000 on Business ($45/seat/month), verified August 12, 2026. Copying means spending your ceiling twice.
Atomic fields, of the right type
First normal form, academic version: at every row/column intersection, a single value, never a list. Microsoft's version, jargon-free: break each piece of information into its smallest useful parts — anything you want to sort, filter or calculate on deserves its own field.
The Airtable habit is typing: around thirty field types — single select, email, phone, currency, date, duration. A free-text status will produce "in progress", "In Progress" and "inprogress"; a single select allows one option from a controlled list. An address in one block cannot be filtered by city; four fields can.
The pocket rule: one field = one piece of information, of the right type. A comma separating two things in one cell means two fields — or two linked records.
The junction table, for relationships that matter
There remains the case that stalls most self-built bases: the many-to-many relationship. A book has several authors, an author writes several books — Airtable's documentation describes all three relationship types, with examples.
The trap: when the relationship itself carries information. An order contains several products, each with its quantity — where does the quantity go? Not in the order, not in the product: it describes the pair. Airtable then recommends a junction table: an "Order lines" table where each record links one order and one product, and carries the quantity.
Normalization, translated into Airtable habits, fits in three rows:
| The academic rule | What it requires | The Airtable habit |
|---|---|---|
| 1NF | A single value per cell, of the right type | Typed field (single select, date, currency…) |
| 2NF/3NF | Every field describes "the key, the whole key, and nothing but the key" | Linked record + lookup, instead of a copy |
| N-N relationship with attributes | The relationship carries its own data | Junction table |
The principle scales: our synchronization engine connects 6 CRM/ERP systems to a single source of truth, driven by a mapping stored in Airtable — zero re-entry, a new source = a new mapping, no code (Ownward internal data, 2026). It is the heart of how we build: structure first, tool second.
The checklist: 10 signs your base is badly modeled
Run your base through the sieve: every sign has its corrective move, and none requires code.
| # | The sign | The corrective move |
|---|---|---|
| 1 | The same customer typed into several tables | A Customers table, a linked record |
| 2 | A cell containing a list ("Smith, Jones, Brown") | One record per item, connected by a linked field |
| 3 | Columns named "Product 1", "Product 2", "Product 3" | A junction table, one record per line |
| 4 | A product price retyped in every order | A lookup from the Products table |
| 5 | An order total maintained by hand | A rollup (sum) over the linked lines |
| 6 | Free-text statuses ("in progress", "In Progress"…) | A single select with controlled options |
| 7 | A full address in a single text field | Atomic fields: street, postal code, city, country |
| 8 | Two tables "Customers 2024" / "Customers 2025" | One table, a date field, filtered views |
| 9 | A field describing a different entity than its table's | Move it to its owner table, read it via lookup |
| 10 | Duplicated records standing in for a multiple relationship | A multiple linked record — or a junction table if the relationship carries data |
One sign checked: the fix is quick and local. Five or more: go back to the model before adding a single field.
The limits of this approach
Three habits cover most cases, not all. A no-code database does not enforce referential integrity the way a classic database engine does: no uniqueness constraint on the primary field, no safety net when deleting a linked record. Rigor remains a team discipline — a matter of governance more than tooling. Beyond plan volumes, or as soon as strong isolation between customers is required, the pattern to remember is migrating to a managed relational database — a path we have taken on 8 of our production applications (Ownward internal data, 2026). And modeling is never finished: a new entity in the business means a new table in the base.
Key takeaways
- The highest-yield test is one question per field: "does it really describe the entity of this table?" If not, it moves out — and comes back as a lookup.
- A value that exists twice will eventually diverge; the linked record is the habit that prevents it, without a line of code.
- The junction table is the only correct place to record a quantity, a grade or a date that belongs to a pair of records.
Modeling well without being a developer is not a compromise: it is applying a 1970 theory with tools that have become accessible. Three habits, and your base stops being a spreadsheet in disguise and becomes a foundation — ours carries 17 business extensions in production, including a full CRM (Ownward internal data, 2026). Ownward helps companies perform better through technology — and above all, take back control.
Sources
- Database design basics — Microsoft, accessed August 12, 2026.
- Linking records in Airtable — Airtable, accessed August 12, 2026.
- Understanding linked record relationships in Airtable — Airtable, accessed August 12, 2026.
- Lookup field overview — Airtable, accessed August 12, 2026.
- Rollup field overview — Airtable, accessed August 12, 2026.
- Connect your data with linked records — Airtable, accessed August 12, 2026.
- Supported field types in Airtable — Airtable, accessed August 12, 2026.
- Airtable plans — Airtable, pricing and quotas verified August 12, 2026.
- A Relational Model of Data for Large Shared Data Banks (CACM, 1970) — E. F. Codd, University of Pennsylvania academic copy (canonical reference: ACM DOI 10.1145/362384.362685), accessed August 12, 2026.
- A Simple Guide to Five Normal Forms in Relational Database Theory (CACM, 1983) — William Kent, author's website, accessed August 12, 2026.
- Spreadsheet Errors: What We Know. What We Think We Can Do (EuSpRIG, 2000) — Raymond Panko, University of Hawaii, arXiv copy, accessed August 12, 2026 — historical reference research on spreadsheet risk.
Ownward internal data, 2026.
Data and pricing verified August 12, 2026.
All trademarks belong to their respective owners. This article is neither sponsored nor endorsed by the vendors mentioned.
Is this on your desk right now?
Tell us where you stand. We reply with concrete elements — what we would do first, in your business.
Keep reading
All insightsSeptember 11, 2026 · 7 min read
Govern a Base Like an Internal Product
A spreadsheet updated by hand every Monday, a base built one evening that became critical: most business tools are born without an owner or rules. As long as nobody answers for them, they are not tools that last — they are shadow IT on borrowed time.
September 1, 2026 · 6 min read
Airtable as scaffolding: build what you plan to take down
In 2025, half of IT projects run over deadline, budget or scope, and nearly one in five is abandoned. Yet every internal tool starts as if it were definitive. Owning the temporary — a no-code base built in days, designed to be taken down — remains the decision nobody dares to claim.