Array
(
)

Chave composta

Instituto Junior
   - 07 nov 2013

Olá Pessoa,
Tenho a seguinte dúvida.Vamos ver quem pode me ajudar.A chave primária cod_formulario é autoincremento e a chave primária cod_area também é autoincremento.E estas chaves se relacionam numa terceira tabela.A pergunta é ? Qual o impacto negativo que pode ter ao trabalhar com chaves compostas que são autoincremento nas suas respectivas tabelas.Isso é seguro ? Pode gerar problemas no futuro ? Qual o indicado ?
*cod_formulario
01
*cod_area
01
*cod_formulario *cod_area
01 01

Obrigado,

Isaac Jose
   - 07 nov 2013

As duas chaves tem que ser iguais? se sim você pode deixar q a chave da tabela a seja atribuída automaticamente na table b. não vejo problema tecnicamente nisso se estiver bem estruturado mais vc tem alguma particularidade que acha que ira interferir futuramente?

Instituto Junior
   - 07 nov 2013

Vc quer dizer valores iguais ? Pois isso vai acontecer sim.
A princípio não vejo nenhuma situação que possa impactar , mas a tempos atrás um conhecido teve problemas mas não me recordo exatamente do que era , então gostaria de saber se alguém teve alguma situação peculiar pra compartilhar ...

Obrigado ,

Isaac Jose
   - 07 nov 2013

Se as table e os campos são diferentes e os valores são iguais não vejo problema.. e para consultas entre eles é perfeito...
não consigo me lembrar o que pode acontecer :(

João Antonio
|
MVP
Pontos: 100
    15 abr 2014

Bom dia Junior.

Gostaria de acrescentar uma coisa que não é considerada em modelagem. Você precisa de uma chave primária quando terá um relacionamento entre tabelas. Numa tabela você terá registros pai que apontam para registros filho em outra(s) tabelas.
Se você tem uma tabela onde um campo(ou conjunto de campos) que apenas devem cumprir a finalidade de produzirem identificadores únicos você não precisa necessariamente de uma chave primária. Uma constraint do tipo UNIQUE resolve o caso.
Eu convivo com uma aplicação que vem sendo alterada ao longo de muitos anos. Temos de tudo um pouco ali. E temos partes do modelo onde chaves compostas tornaram a manutenção muito difícil. Claro que há casos e casos, mas há um conceito de modelagem interessante chamado surrogate key, que resolve alguns dos problemas trazidos pelas chaves compostas(entre outras coisas).