Ei! Tudo bem, Gabriele?
Sua dúvida sobre o uso de chaves estrangeiras no SQLite e bancos de dados relacionais em geral é excelente e mexe com os fundamentos do design de tabelas em SQL!
Sim, por regra conceitual e padrão do SQL, a chave estrangeira (FOREIGN KEY) sempre deve apontar para uma coluna que garanta a unicidade dos dados na tabela de destino. Quase sempre essa coluna será a chave primária (PRIMARY KEY).
No entanto, existe uma exceção. Você pode, sim, relacionar uma chave estrangeira a outra coluna que não seja a chave primária, desde que essa outra coluna tenha a restrição UNIQUE aplicada a ela. O banco de dados exige isso para garantir a integridade referencial: ele precisa ter certeza absoluta de que o valor que você está puxando aponta para uma única linha específica e não para vários registros duplicados.
E isso é muito utilizado? Não, na prática do mercado essa abordagem é raramente utilizada. O padrão absoluto da indústria é sempre relacionar a chave estrangeira diretamente com a chave primária da tabela correspondente. Desviar desse padrão costuma deixar a modelagem de dados mais confusa, complexa de dar manutenção e pode prejudicar a performance das suas instruções SQL e consultas.
Conteúdo para complementar seus estudos
Esse conteúdo pode estar em inglês, para traduzi-lo utilize o tradutor automático do navegador ou clique com o botão direito do mouse sobre a página e selecione a opção Traduzir para o português.
Espero ter ajudado e qualquer dúvida, compartilhe conosco.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado