拡張機能を必要としないNeilのソリューションのバリエーションは次のとおりです。
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));
Neilのソリューションでは、任意の数の列を使用できます。
私たちは両方とも、ドキュメント化されているインデックスを構築するために式を使用することに依存していますhttps://www.postgresql.org/docs/current/indexes-expressional.html