Таблица должна всегда иметь первичный ключ. Посмотрите на тысячи вопросов в Stackoverflow, которые спрашивают, как удалить одну из двух идентичных строк в таблице базы данных.
Обычно вы моделируете отношения m-to-n между таблицами с отдельной таблицей, которая имеет внешние ключи для обеих таблицы:
CREATE TABLE person (
person_id bigint PRIMARY KEY,
name text,
...
);
CREATE TABLE game (
game_id bigint PRIMARY KEY,
name text NOT NULL,
...
);
CREATE TABLE likes_to_play (
person_id bigint REFERENCES person NOT NULL,
game_id bigint REFERENCES game NOT NULL,
PRIMARY KEY (person_id, game_id)
);
CREATE INDEX ON likes_to_play (game_id);
Первичный ключ в таблице гарантирует отсутствие лишних двойных записей и поддерживает один из внешних ключей. Другой индекс создается для другого внешнего ключа.