• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

7 mensagens neste tópico

Boas ppl,

Estou a precissar de uma opinião (ou várias) ;), tenho uma tabela que tem um campo nome de utilizador que obviamente tem de ser único, a minha dúvida é se devo usar este campo como chave primária ou devo adicionar um campo id para a chave primária, este campo irá ser a chave estrangeira noutras tabelas.

Gostava de "ouvir" as vossas opiniões/sugestões.

tks,

Nuno.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a resposta é depende.

a utilização de um campo id inteiro pode trazer ganhos com espaço, pois à partida ocupa menos espaço que uma string, e em algumas operações que precisem de comparar valores.

em contrapartida, precisas de mais uma coluna nessa tabela. dependendo da situação, pode ser melhor uma coisa ou outra.

penso que na maior parte dos caso é melhor usar um campo id.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na minha opinião não se deve juntar campos de gestão da BD com campos de dados, logo seria mais lógico colocar uma constrain no campo nome e criar um campo ID para ser a chave primária.

Mas também à um tempo que não me debruço sobre estes temas, posso estar enganado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a minha primeira opção também foi a do campo id, mas depois como o campo utilizador também tem de ser único com uma cajadada matavam-se 2 coelhos, mas acho que vou para a solução do campo id, sendo assim qual a melhor solução para garantir que o nome de utilizador é único?

Antes de gravar na bd faço um select para ver se já existe o campo? Faço o campo utilizador ser um indice sem repetição? Ou haverá outra solução melhor?

Tks again,

Nuno.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens a constraint UNIQUE.

Exacto, mas tens de ver a collation que a BD tem porque se for Case-Insensitive pode ocorrer a situação de teres nomes iguais com com capitalização diferente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a minha BD é access, não sei se tem o constraint (pelo menos sem ter que meter o campo como indice), vou googlar um bocadinho...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora