Fórum Relacionamento Master-Detail e Chave Primária #406869
19/08/2011
0
Bom Dia Gente, Possuo uma tabela no banco com as seguintes caracteristicas :
Venda ( Master ) --- > Items_da_Venda ( Detail )
onde venda tem os seguintes campos :
vendaid (PK ) data valor
e Items_Da_venda tem os seguintes campos :
vendaid (FK) produtoid (FK) qtd
Como vocês perceberam isto é apenas um exemplo resumido do meu BAnco real, mais serve de amostra. O que ocorre é que ao criar uma relacionamento Master-Detail no Delphi o DataSetProvider do meu Master é setado como "UpWhereKeyOnly" isto porque a tabela Venda tem um PK, porém quando ligo o Detail (items_da_venda) ele não possue um PK apenas FK's, mais pelo fato de ser um Detail ele está "indiretamente" ligado ao DataSetProvider e por isso deve ter também um PK. A Solução mais comum para este problema obviamente é criar um PK no banco tal como : items_de_vendaid e o problema foi solucionado, mais isso foge totalmente do correto, já que neste caso na teoria não deveriamos usar PK.
Venda ( Master ) --- > Items_da_Venda ( Detail )
onde venda tem os seguintes campos :
vendaid (PK ) data valor
e Items_Da_venda tem os seguintes campos :
vendaid (FK) produtoid (FK) qtd
Como vocês perceberam isto é apenas um exemplo resumido do meu BAnco real, mais serve de amostra. O que ocorre é que ao criar uma relacionamento Master-Detail no Delphi o DataSetProvider do meu Master é setado como "UpWhereKeyOnly" isto porque a tabela Venda tem um PK, porém quando ligo o Detail (items_da_venda) ele não possue um PK apenas FK's, mais pelo fato de ser um Detail ele está "indiretamente" ligado ao DataSetProvider e por isso deve ter também um PK. A Solução mais comum para este problema obviamente é criar um PK no banco tal como : items_de_vendaid e o problema foi solucionado, mais isso foge totalmente do correto, já que neste caso na teoria não deveriamos usar PK.
Ronaldo Lanhellas
Curtir tópico
+ 0
Responder
Posts
19/08/2011
Ronaldo Lanhellas
Poderiamos tambem usar um Chave Composta no banco, mais como usar Chave Composto no "UpWhereKeyOnly" do DataSetProvider ?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)