Relacionamento de tabelas mysql(Heidi)+ delphi
Boa tarde,
Faz pouco tempo que estou programando em Delphi e hoje me surgiu uma dúvida, apesar de ter lido em vários lugares eu não consegui achar uma boa explicação de como fazer um relacionamento entre tabelas com engine já InnoDB.
No caso seria um relacionamento entre as tableas Categorias e Produtos.
Tabelas:
Categorias
CatCodigo ( chave primária, int , autoincremento)
CatDescrição ( blob )
Produtos
ProId (chave primária, int, autoincremento )
ProdCategoria(chave-estrangeira, int )
ProdCodigo (varchar)
ProdNome (")
ProdPrecoVenda (Double)
ProdQntdeEst (int)
ProdUnidade (varchar)
ProdFornecedor (int)
Faz pouco tempo que estou programando em Delphi e hoje me surgiu uma dúvida, apesar de ter lido em vários lugares eu não consegui achar uma boa explicação de como fazer um relacionamento entre tabelas com engine já InnoDB.
No caso seria um relacionamento entre as tableas Categorias e Produtos.
Tabelas:
Categorias
CatCodigo ( chave primária, int , autoincremento)
CatDescrição ( blob )
Produtos
ProId (chave primária, int, autoincremento )
ProdCategoria(chave-estrangeira, int )
ProdCodigo (varchar)
ProdNome (")
ProdPrecoVenda (Double)
ProdQntdeEst (int)
ProdUnidade (varchar)
ProdFornecedor (int)
Felippe Tadeu
Curtidas 0
Respostas
Marcos Iwazaki
28/09/2012
depois que vc fez isso é so ir na tabela produtos
e fazer uma chave apontando para a categoria
não estou com mysql aqui... estou passando com sintaxe do firebird... acredito que não mude muito
ALTER TABLE Produtos ADD CONSTRAINT FK_prod_Cat FOREIGN KEY (ProdCategoria) REFERENCES Categorias(CatCodigo ) ON DELETE CASCADE ON UPDATE CASCADE;
e fazer uma chave apontando para a categoria
não estou com mysql aqui... estou passando com sintaxe do firebird... acredito que não mude muito
ALTER TABLE Produtos ADD CONSTRAINT FK_prod_Cat FOREIGN KEY (ProdCategoria) REFERENCES Categorias(CatCodigo ) ON DELETE CASCADE ON UPDATE CASCADE;
Boa tarde,
Faz pouco tempo que estou programando em Delphi e hoje me surgiu uma dúvida, apesar de ter lido em vários lugares eu não consegui achar uma boa explicação de como fazer um relacionamento entre tabelas com engine já InnoDB.
No caso seria um relacionamento entre as tableas Categorias e Produtos.
Tabelas:
Categorias
CatCodigo ( chave primária, int , autoincremento)
CatDescrição ( blob )
Produtos
ProId (chave primária, int, autoincremento )
ProdCategoria(chave-estrangeira, int )
ProdCodigo (varchar)
ProdNome (")
ProdPrecoVenda (Double)
ProdQntdeEst (int)
ProdUnidade (varchar)
ProdFornecedor (int)
Faz pouco tempo que estou programando em Delphi e hoje me surgiu uma dúvida, apesar de ter lido em vários lugares eu não consegui achar uma boa explicação de como fazer um relacionamento entre tabelas com engine já InnoDB.
No caso seria um relacionamento entre as tableas Categorias e Produtos.
Tabelas:
Categorias
CatCodigo ( chave primária, int , autoincremento)
CatDescrição ( blob )
Produtos
ProId (chave primária, int, autoincremento )
ProdCategoria(chave-estrangeira, int )
ProdCodigo (varchar)
ProdNome (")
ProdPrecoVenda (Double)
ProdQntdeEst (int)
ProdUnidade (varchar)
ProdFornecedor (int)
GOSTEI 0
Felippe Tadeu
28/09/2012
Desculpe a demora para responder, (eu acabo vendo apenas de semana o fórum).
Sobre o relacionamento eu consegui, agora como faço para um fazer o seguinte procedimento:
Ao cadastrar um produto eu tenho que escolher uma categoria e que também aparecesse os dados da categoria. ( Nesse caso o que melhor me recomendaria ? )
Sobre o relacionamento eu consegui, agora como faço para um fazer o seguinte procedimento:
Ao cadastrar um produto eu tenho que escolher uma categoria e que também aparecesse os dados da categoria. ( Nesse caso o que melhor me recomendaria ? )
GOSTEI 0
Felippe Tadeu
28/09/2012
Sobre aparecer os dados de outra tablea eu já consegui, agora gostaria de saber o que melhor recomendariam de componente.
Sobre o relacionamento entre os dados eu estava com a ideia errada, achava que precisava ter a chave primária.( um pouco mais de curiosidade teria resolvido mais cedo ) obrigado pela atenção.
Sobre o relacionamento entre os dados eu estava com a ideia errada, achava que precisava ter a chave primária.( um pouco mais de curiosidade teria resolvido mais cedo ) obrigado pela atenção.
GOSTEI 0
Marcos Iwazaki
28/09/2012
olha... eu geralmente uso
um dbEdit para o codigo e um outro edEdit para trazer a descrição...
e fiz um componente q ao clicar no botão do lado do edit do codigo abre uma pesquisa q ele possa pesquisar pela descrição tbm. Ao fazer isso ele atualiza o codigo e a descrição na tela.
Outra forma de fazer isso se é uma tabela q não vai crescer muito é usa um DBComboBox no qual nos itens vc mostra a descrição e no values vc tras os codigos.
Geralmente os usuarios preferem combobox pois é mais facil p eles usarem.
um dbEdit para o codigo e um outro edEdit para trazer a descrição...
e fiz um componente q ao clicar no botão do lado do edit do codigo abre uma pesquisa q ele possa pesquisar pela descrição tbm. Ao fazer isso ele atualiza o codigo e a descrição na tela.
Outra forma de fazer isso se é uma tabela q não vai crescer muito é usa um DBComboBox no qual nos itens vc mostra a descrição e no values vc tras os codigos.
Geralmente os usuarios preferem combobox pois é mais facil p eles usarem.
GOSTEI 0
Alisson Santos
28/09/2012
o que você espera que o componente faça?
GOSTEI 0
Felippe Tadeu
28/09/2012
O que eu gostaria é o seguinte..
Na tabela de categorias tem uma categoria chamada camisetas( no caso a que iria escolher para o exemplo ).
Agora na tela de cadastro de produtos, eu gostaria de cadastrar um tipo de camiseta e no campo categoria eu iria escolher camisetas.
Na tabela de categorias tem uma categoria chamada camisetas( no caso a que iria escolher para o exemplo ).
Agora na tela de cadastro de produtos, eu gostaria de cadastrar um tipo de camiseta e no campo categoria eu iria escolher camisetas.
GOSTEI 0
Felippe Tadeu
28/09/2012
No caso seria uma tabela que não cresceria muito, seriam poucas categorias.
Voces poderiam me auxiliar como poderia fazer usando o DBComboBox ?
Voces poderiam me auxiliar como poderia fazer usando o DBComboBox ?
GOSTEI 0
Felippe Tadeu
28/09/2012
Gente muito obrigado pela atenção, tudo resolvido!!!
GOSTEI 0
Marcos Iwazaki
28/09/2012
Amigo parabens por ter resolvido,
Mas peço para que post aqui a solução... sua duvida por ser de outra pessoa tbm.
T+
Mas peço para que post aqui a solução... sua duvida por ser de outra pessoa tbm.
T+
Gente muito obrigado pela atenção, tudo resolvido!!!
GOSTEI 0
Felippe Tadeu
28/09/2012
No caso na tela de cadastro de produto eu coloquei um dbedit para a categoria, que esta ligado a uma query com um select para mostrar apenas o nome da categoria. Ao lado do dbedit coloquei um botão que abre uma dbgrid que esta ligada a mesma query do dbedit. Quando é dado o duplo clique na grid já é selecionada a categoria no dbedit.
Novamente muito obrigado pela atenção!
Novamente muito obrigado pela atenção!
GOSTEI 0
Alisson Santos
28/09/2012
Ok qualquer coisa só informar.
GOSTEI 0