Chapter 23
When relationships become required
Gary stared at the album form again.
“Something still bothers me.”
Sam looked up.
“If we saved this without an artist…
what exactly would it be?”
Sam didn’t answer immediately.
An album without a publishing year might be incomplete.
An album without a subtitle might be optional.
But an album without an artist?
“That’s not incomplete,” Gary said.
“That’s not an album.”
Sam nodded.
“Then we’re not checking a column.”
“What are we checking?”
“The connection.”
Describing the absence of a relationship

They opened classifications again.
Not Value.
Relational.
“This one doesn’t look at a field,” Sam said.
“It looks at a path.”
He filled it in:
Name: Missing Artist
API name: missing_artist
Source: Album
Then he selected the path:
Album → artists
Gary watched the path builder expand.
“So we’re starting from Album…
and following the artists relation?”
“Yes.”
Sam set the expected outcome:
Exactly 0.
“And if the number of related artists is zero—”
“Then the classification becomes true,” Gary finished.
They saved it.
Nothing changed.
They had only described the situation:
An album with zero artists.
Turning description into a boundary

They opened Configure write rule
for Missing Artist.
Same structure as before.
Active.
When true.
But this time the severity was different.
Error.
Message:
An album must have at least one artist.
Message details:
Every album must be linked to at least one artist before it can be saved.
Gary leaned back.
“So the rule doesn’t check a field.”
“No,” Sam said.
“It checks the result of the relationship.”
“If the album would exist
with zero connected artists—”
“The classification becomes true.”
“And because it’s an Error—”
“The system refuses that state.”
Testing the boundary

They clicked Add Album.
Typed the title.
Did not connect any artists.
The message appeared immediately:
An album must have at least one artist.
Gary moved the cursor toward Save.
The button was gray.
Disabled.
He couldn’t press it.
Sam pointed at the form.
“The system evaluates continuously.”
“It asks: if this album were saved right now,
how many artists would it have?”
“Zero.”
“And that outcome is not allowed.”
Gary nodded slowly.
“This isn’t about missing data.”
“No,” Sam said.
“It’s about structure.”
An album can exist without a year.
An album cannot exist alone.
Reflection
Value classifications describe properties.
Relational classifications describe connections.
Both evaluate the current state
as if it had already been saved.
Both can warn.
Both can enforce.
Continue reading
“What about albums that look right…
but feel wrong?”
Sam raised an eyebrow.
“You mean?”
“Like compilations,” Gary said.
“Customers ask for Miles Davis.
They don’t mean the Christmas sampler he appears on.”
Some problems were not about missing data.
Not about structure.
But about interpretation.
When does something technically qualify…
yet still not mean what people expect?