1
State the purpose
Finish this sentence: “Someone needs this model so they can…” If you can’t finish it, you don’t have a model yet — you have a list of nouns.
2
Name the audience
Who has to understand this and act on it? Their vocabulary sets your entity names.
3
List the things that matter
One noun per line. Things you need to count, look up, or keep a history of — not attributes of something else.
4
Justify each one
If an entity has no answer here, it probably belongs as an attribute of something else — or doesn’t belong at all.
5
Connect them
Read each one aloud as a sentence. If it doesn’t sound like something a person in your audience would say, the relationship is wrong.
Entities
Relationships
Model as text
Ready
Syntax
model: Receipt Model why: See which products sell together for: Category analysts entity Product why: Something the store sells * product_id : uuid * = primary key barcode : text! ! = required product_name : text sizes : text[] [] = repeats (1NF flag) entity Line item why: One product on one sale * line_item_id : uuid product_id : uuid -> Product -> = foreign key rel Product 1--0..N Line item : appears as Cardinality: 1 · 0..1 · N (one or more) · 0..N (zero or more)