Posts und Kategorien ist wahrscheinlich Many-to-Many, nicht One-to-Many.
Eine Viele-zu-Viele-Beziehungstabelle wird am besten so erstellt wie
CREATE TABLE a_b (
a_id ... NOT NULL,
b_id ... NOT NULL,
PRIMARY KEY (a_id, b_id),
INDEX(b_id, a_id) -- include this if you need to go both directions
) ENGINE = InnoDB;
Damit erhalten Sie automatisch "geclusterte" Lookups in beide Richtungen und vermeiden die unnötige künstliche ID für die Tabelle.
(Übrigens, NB, ein impliziter PK ist 6 Bytes, nicht 8. Es gibt einen langen Beitrag von Jeremy Cole zu diesem Thema.)
Eine 1:n-Beziehung benötigt diese zusätzliche Tabelle nicht. Verwenden Sie stattdessen eine ID in der anderen Tabelle. Beispielsweise enthält eine City-Tabelle die ID für das Land.