We run a US directory of special needs schools and ABA therapy providers. Providers pay to be promoted in the places where parents are searching. The first version of that feature was one integer column. It worked right up until it cost us money.

Here is the column, the failure, and the schema we replaced it with.

The naive model

create table listings (

id uuid primary key,