Oi Rodrigo,
A Chave Primária (PK - Primary Key) é garantir que o registro seja único e não nulo. Geralmente usamos nomeamos a coluna com ID (Identificado)
A Chave Estrangeira (FK– Foreign Key) é para fazer o relacionamento entre tabelas
Na figura abaixo todas as tabelas tem a Chave Primaria (PK) e a tbl_vendas tem as Chaves Estrangeiras (FK) para ligar as tabelas
Oi, Rodrigo. Foca apenas nas chaves Primária PK (identificar um registro na tabela) e chave Estrangeira (Ligar tabelas)
Quanto a sua nova pergunta 'eu sempre terei que ter uma tabela a parte para fazer a ligação' a resposta é não
Isso é relacionamento entre as tabelas (1:1, 1:N, N:N). Assunto para outro tópico