Skip to content

Chapter 10

When two tables mean one thing

Nothing is broken.

That’s what makes this decision harder.

The customer keeps growing

Gary looking at a customer record that has grown dense

Over time, the customer row fills up.

Not with noise.
With useful things.

Preferences.
Special pricing.
Store credit.
Internal notes Gary doesn’t want everyone to see.

None of it is wrong.

But the row is no longer simple.

This isn’t about “more”

Gary doesn’t need more structure.

He needs separation.

Some information: - changes often
- is sensitive
- applies only in certain situations

Other information: - is stable
- is public
- defines the customer’s identity

They all describe the same person.

But they don’t behave the same way.

Sam names the difference

Sam separating customer identity from customer settings

“You’re not splitting the customer,” Sam says.

“You’re separating concerns.”

Gary pauses.

That sounds right.

Two tables, one meaning

Gary creates a second table.

Not for a new thing.

But for a different aspect of the same thing.

One table holds: - who the customer is

The other holds: - how Gary interacts with them

Every customer has exactly one of each.

No more.
No less.

Nothing is duplicated.
Nothing is repeated.

The system just breathes easier.

This is not realism

Gary notices something important.

There aren’t two customers.

There is still one.

The split isn’t about reality.

It’s about control: - what can change
- who can see what
- what should be handled together

The structure reflects intent, not the world.

Continue reading

In the next chapter, Gary steps back.

Not to add structure —
but to understand what all these choices amount to.

Chapter 11: Modeling is choosing a future