Pos dan kategori mungkin banyak-ke-banyak, bukan satu-ke-banyak.
Tabel hubungan banyak-ke-banyak paling baik dilakukan seperti
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;
Dengan itu, Anda secara otomatis mendapatkan pencarian "berkelompok" di kedua arah, dan Anda menghindari id buatan yang tidak perlu untuk tabel.
(Omong-omong, N.B., PK implisit adalah 6 byte, bukan 8. Ada posting panjang oleh Jeremy Cole tentang topik tersebut.)
Hubungan satu-ke-banyak tidak memerlukan tabel tambahan ini. Sebagai gantinya, miliki satu id di dalam tabel lainnya. Misalnya, tabel Kota akan memiliki id untuk Negara di dalamnya.