Data modeling at a glance
What you define
| Concept | Is |
|---|---|
| Entity type | A kind of thing you master |
| Attribute | A named piece of data on that type |
| Relationship type | A kind of link between two types |
The four attribute decisions
Made in this order, because each constrains the next.
| Decision | Options | Expensive to reverse |
|---|---|---|
| Data type | Scalar or composite | Yes — flattened structure is unrecoverable |
| Cardinality | Single or multiple | Yes — widening means re-examining records that lost values |
| Required | Yes or no | No |
| Reference binding | Bound to a lookup type, or free | Yes — retrofitting means cleaning every value |
Three of four are expensive. Spend your time here.
Single versus multi-value
| Single-value | Multi-value |
|---|---|
| One meaningful value — a legal name, a birth date | Several — emails, phones, addresses |
| Compared atomically when matching | Every combination compared, best pairing taken |
| One survivorship winner | Optionally every distinct value preserved |
A multi-value attribute can bind a usage type (home, work, mobile). Survivorship then resolves each usage independently.
Composites
An address is named parts, not a string. Declaring it composite is what lets matching compare postal codes exactly while comparing street lines loosely.
Comparing two whole composites with a scalar comparator is refused — two unrelated addresses would otherwise compare equal.
Reference binding
The code is stored; the label is resolved when reading. Relabelling does not rewrite stored data, and search matches the resolved label as well as the code.
Order of work
- Entity types and attributes
- Reference data, and bind attributes to it
- Standardization rules
- Match profiles
- Load records
Each depends on the one before. Matching unstandardized values produces false negatives.
Next
Last verified against commit 1e1de1ad (2026-08-03)