Een variatie op de oplossing van Neil die geen uitbreiding nodig heeft is:
create table friendz (
from_id int,
to_id int
);
create unique index ifriendz on friendz(greatest(from_id,to_id), least(from_id,to_id));
Met de oplossing van Neil kun je echter een willekeurig aantal kolommen gebruiken.
We vertrouwen allebei op het gebruik van expressies om de index te bouwen die is gedocumenteerdhttps://www.postgresql.org/docs/current/indexes-expressional.html