1
resposta

Dúvida

Se eu criar um banco de dados para uma empresa e que vai registrar todas as compras desde o começo e passamos o usuário da compra + o quando ela comprou e no outro mês ele comprou também mas o banco precisa registrar os dois meses de forma separada (todas as vezes que a pessoa x comprou na loja) Exemplo: PESSOA1 MÊS X DATA X PRECO X PESSOA1 MÊS X DATA X PRECO X PESSOA1 MÊS X DATA X PRECO X PESSOA2 MÊS X DATA X PRECO X PESSOA2 MÊS X DATA X PRECO X Esse seria um dos casos que não usaríamos uma chave primaria? Pelo fato que elas não podem ser repetidas?

1 resposta

Mesmo que cada linha da tabela seja de certa forma única, a chave primária tem outras funções, como identificar a linha, facilitar a localização e o 'transporte' de informações. Exemplo:

PessoaDiaPreço
Fulano01/01/20001111
Fulano02/01/20002222
Fulano02/01/20003333
Beltrano01/01/20002222
Beltrano02/01/20003333
Sicrano03/01/20004444

Digamos que você quer listar todas as compras de Pessoa = 'Fulano' no dia '02/01/2000' e que armazenar isso em outra tabela, chamada Auditoria. Nessa outra tabela você teria que cadastrar as duas informações, 'Fulano' e '02/01/2000' para conseguir localizar o valor de Preço posteriormente.

Por outro lado, se você criar uma estrutura assim:

IdPessoaDiaPreço
1Fulano01/01/20001111
2Fulano02/01/20002222
3Fulano02/01/20003333
4Beltrano01/01/20002222
5Beltrano02/01/20003333
6Sicrano03/01/20004444

Na tabela Auditoria você armazenaria apenas os valores '2' e '3'.