Skip to content

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

Creating a relational classification for Album that has no related Artist rows

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

Configuring write rule with severity Error for missing artist

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

Add Album form showing error when no artist is connected and save button disabled

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?

Chapter 24: When meaning depends on more than one thing