Problema ao inserir id no banco de dados

4 respostas
S

Ola boa noite !

Tenho no meu banco de dados uma tabela Venda e uma especialização desta, Boleto, entretanto possuo uma classe que faz esta conexão com o banco.

Segui o seguinte raciocinio:

na classe Venda insiro no banco a idVenda. E na classe boleto instancio a classe Venda para pegar a idVenda e atribui-la a uma variavel da classe jBoleto. Uma vez atribuido o idVenda a variavel, mandei exibir com o qual o valor atribuido a ela nao era a idVenda, aparecia uma linha de codigo MySQL, para tanto ao fazer o insert com esta variavel no banco logicamente nao funcionara.

Tentei também passar a idVenda pelo construtor, porem também nao obtive exito.

alguém sabe como posso solucionar este problema :?:

4 Respostas

emanuelCruz

Não entendi bem a sua pergunta, mas tem certeza que você quer que boleto seja uma especialização de venda ?

Ou seja, no teu caso um boleto É UMA venda ?

Não seria, no teu caso, uma venda TER UM boleto ? Ou ainda um boleto TER UMA venda ?

S

Na minha interpretação, para toda venda a um boleto, uma vez que nem toda venda sera em boleto, ao fazer o select para trazer qual tipo de venda foi realizado, avista ou “boleto” será necessario a fk idVenda contida na tabela boleto.

corrija-me se estiver errado

H

fazer o insert com essa variavel em qual tabela ?

drsmachado

Pela tua lógica, idVenda é uma FK que deverá existir na tabela de boleto, correto?
Isto não é especialização, afinal, uma venda nem sempre terá um boleto associado e, boleto, não é filho de venda (ele é filho de forma de pagamento).
Portanto, é uma relação 0 : 1, pois, um boleto sempre estará associado a uma venda, mas, uma venda não necessariamente estará associada a um boleto.
O correto seria utilizar cascading no próprio banco ou uma procedure que permita interagir sem depender de um select logo a seguir da inserção, mas se não for possível, sugiro que você, quando inserir na tabela de venda, em seguida, obtenha o idVenda, pode ser na classe que salva o boleto. Para isto, o mysql possui a função max(column)

select max(idVenda) from vendas
Criado 15 de fevereiro de 2011
Ultima resposta 16 de fev. de 2011
Respostas 4
Participantes 4