Algumas tabelas requerem por exemplo duas chaves estrangeiras formando sua chave primeira. Uma forma fácil de ver é um ecommerce, onde na tabela compras eu preciso do ID do usuário e o ID do carrinho de compras por exemplo. As duas chaves juntas formam uma nova chave primária.
Pelo que vi da segunda forma, você não pode ter nessa tabela por exemplo, o nome do usuário que fez a compra, por que? Por que ela depende apenas do ID do usuário. Você também não pode ter o ID de um produto comprado, por que ela só depende do ID do carrinho em si. Então teríamos na prática
1 tabela usuários.
1 tabela carrinho
1 tabela produtos
1 tabela compras
1 tabelas carrinho_produtos
Dá pra imaginar os relacionamentos?