Kuovonne's Guide to Airtable
Kuovonne's Guide to Airtable
🚧Normalized Design

Design Principles

Design Principles / Normalization

tables, records, fields
each table represents a single type of noun (person, place, thing, idea)
each record represents a single instance of that noun
records do not have a set order; there is no inherent “before/after/previous/next” record
fields do not have a set order; there is no inherent “before/after/previous/next” field
Normalization principles for cell values: editable cells should have a single, atomic value, with a single source of truth
atomic: each field represents the smallest practical unit of data (e.g. first name vs. name) (Each field has a single data type)
singular: each cell value should be a single value (versus a list of values, except for field types that explicitly take an array, and even then consider if there should be multiple values)
cell values should have a single source of truth
use linked record fields show relationships
one-to-one and one-to-many relationships
many-to-many relationships with and without junction tables
In Airtable, relationships must be explicitly set (other databases are different)
situations where a linked table might be a better design
repeated information (no single source of truth)
“rivers of white”—properties that don’t apply to most record
needing aggregate statistics
computed values update when their inputs update
formula fields take their inputs from other fields within a record
rollup fields take their inputs from a field in the linked records (and the fields within the record)
to “lock in” a value, it must be in an editable field
keep data as clean as possible—e.g. leading/trailing spaces, capitalization, ‘not a value’ values.
leverage existing linked relationships for lookups, rollups, count fields; create new linked relationships carefully


in what ways does the data need to match the outside world?
how are changes from the outside world inputted? how will data be inputted? Manually? CSV input? API input? One-time? Periodic batches? One-time plus manual trickle?
how are results that need to be communicated to the outside world outputted?

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
) instead.