Chave primária
20/04/2007
0
Estou projetando um banco de dados e na empresa em q estou trabalhando agora tem um padrão p suas tabelas e para a formação de suas chaves primárias.
Para cada tabela é criada um id q funciona como chave primária, por exemplo: a Tabela Aluno tem número de matrícula (o aluno só pode ter um número de matrícula), o nome do aluno, etc e o tal id_aluno que é quem será a chave primária.
A justificativa é q dessa forma se for necessário alterar o valor do número de matrícula (adicionar uma letra a número), como esse atributo não é uma PK fica mais seguro esse processo.
Eu tenho outra visão, pois com esse tal id, em muitas situações preciso fazer vários joins para chegar a uma determinada informação.
Como não sou muito experiente não tenho certeza qual é a melhor abordagem, por isso gostaria q vcs dessem opiniões a esse respeito.
Desde já agradeço a atenção e colaboração de todos.
Para cada tabela é criada um id q funciona como chave primária, por exemplo: a Tabela Aluno tem número de matrícula (o aluno só pode ter um número de matrícula), o nome do aluno, etc e o tal id_aluno que é quem será a chave primária.
A justificativa é q dessa forma se for necessário alterar o valor do número de matrícula (adicionar uma letra a número), como esse atributo não é uma PK fica mais seguro esse processo.
Eu tenho outra visão, pois com esse tal id, em muitas situações preciso fazer vários joins para chegar a uma determinada informação.
Como não sou muito experiente não tenho certeza qual é a melhor abordagem, por isso gostaria q vcs dessem opiniões a esse respeito.
Desde já agradeço a atenção e colaboração de todos.
Ronnypeterson
Curtir tópico
+ 0
Responder
Posts
16/05/2007
Psergio.p
Caro amigo não entendi bem, esse ID será ou não PK (chave primaria)?
Responder
15/09/2007
Raserafim
chave primária tem que ser um campo que identifique o registro, ou seja, que tenha um valor que seja único entre todos os registro.
o número da matrícula atende em a este requisito.
portanto ele poderia ser a chave primária. mesmo que este valor venha a se alterar. então você configura a integridade referencial para propagar atualização.
MAS, você colocou que essa matrícula poderia ser alterada e acrescentada uma letra. aí a situação muda.
a chave primária vai formar um índice que irá agilizar as buscas, fazer as ligações em uma consulta. e o ideal é que a chave primária seja números.
para colocar uma letra vc então teria que definir o campo como Char ou VarChar, e isso tornaria as pesquisas bem mais lentas.
sugestão:
vc pode acrescentar um campo a sua tabela, por exemplo, CodAluno, que seria apenas para o funcionamento interno, este seria a chave primária.
o número da matrícula atende em a este requisito.
portanto ele poderia ser a chave primária. mesmo que este valor venha a se alterar. então você configura a integridade referencial para propagar atualização.
MAS, você colocou que essa matrícula poderia ser alterada e acrescentada uma letra. aí a situação muda.
a chave primária vai formar um índice que irá agilizar as buscas, fazer as ligações em uma consulta. e o ideal é que a chave primária seja números.
para colocar uma letra vc então teria que definir o campo como Char ou VarChar, e isso tornaria as pesquisas bem mais lentas.
sugestão:
vc pode acrescentar um campo a sua tabela, por exemplo, CodAluno, que seria apenas para o funcionamento interno, este seria a chave primária.
Responder
Clique aqui para fazer login e interagir na Comunidade :)