Polecam używać:
PRIMARY KEY (category_id, posts_id)
id wartość zawsze będzie unikalna - to, co nie będzie, to parowanie category_id i posts_id .
Ale przegapiłem, że masz już unikalny klucz zdefiniowany w category_id i posts_id kolumny, więc kluczem podstawowym może być po prostu id . Ale klucz podstawowy oznacza, że będzie to indeks klastrowy — tych dwóch kolumn będziesz szukać częściej niż w przypadku id kolumna, więc wyszukiwania powinny nieznacznie poprawić się w stosunku do indeksu nieklastrowanego w dwóch kolumnach.