Boa tarde, Rodolfo.
Em primeiro lugar, se vc. está utilizando o VFP 7.0 nunca utilize Primary Keys definidas em campos numericos ( Integer ). Motivo: Dá problemas em Combo Box que listam os produtos indexados pelo código numerico caso existam registros deletados ( pulos de sequencia de códigos ). Tem um BUG no VFP 7.0.
Nos meus projetos, sempre defino a PK como Character e criei uma função que é associada ao campo chave da tabela para adicionar a próxima chave automaticamente na inclusão. Então eu tenho a situação nº 1 que vc. sugeriu, onde existe um campo interno chave e um campo externo que o usuario modifica ao seu critério. As tabelas filhos, contem o campo chave interna que é utilizada para fazer o relacionamento entre as tabelas ( Relacionamento permanente no DBC ). Vc. pode definir um indice candidato na chave externa para efeito de pesquisas e relatórios.
Não sei se fui claro, qualquer duvida retorne.