Quero saber se as chaves primárias compostas são uma prática ruim e, se não, em quais cenários seu uso é benéfico?
Minha pergunta é baseada neste artigo
Observe a parte sobre chaves primárias compostas:
Má Prática Nº 6: Chaves Primárias Compostas
Esse é um ponto controverso, já que muitos designers de banco de dados falam hoje em dia sobre o uso de um campo gerado automaticamente por ID inteiro como chave primária em vez de um composto definido pela combinação de dois ou mais campos. Isso é atualmente definido como a “melhor prática” e, pessoalmente, tendo a concordar com isso.
No entanto, isso é apenas uma convenção e, claro, os DBEs permitem a definição de chaves primárias compostas, que muitos designers consideram inevitáveis. Portanto, assim como a redundância, as chaves primárias compostas são uma decisão de design.
Cuidado, porém, se sua tabela com uma chave primária composta tiver milhões de linhas, o índice que controla a chave composta pode crescer até um ponto em que o desempenho da operação CRUD seja muito degradado. Nesse caso, é muito melhor usar uma chave primária de ID de inteiro simples cujo índice será compacto o suficiente e estabelecerá as restrições DBE necessárias para manter a exclusividade.