Dit kun je niet zomaar doen. De least()
/greatest()
aanpak zal niet in alle gevallen werken.
Postgres heeft een aantal mooie indexbewerkingen. Maar de beste manier is om een verbindingstabel te gebruiken. Bijvoorbeeld:
create table userPhones (
userPhoneId bigint primary key ,
userId bigint references users(id),
phone_counter int check (phone_counter in (1, 2)),
phone varchar,
unique (userId, phone_counter),
unique(phone)
);
Dit beperkt ook het aantal telefoonnummers tot 2 voor elke gebruiker.