Kimura 0 Denunciar post Postado Abril 20, 2010 Olá, Tenho 3 tabelas: +----------------+ Ex.: | problema | 1 | umidade | id | descricao | 2 | bolor +----------------+ +----------------+ Ex.: | solucao | 1 | Repare se existem infiltrações ou vazamentos... | id | descricao | 2 | ... +----------------+ +--------------------------+ Ex.: | problema_x_solucao | 1 | 1 | id_problema | id_solucao | 2 | 1 +--------------------------+ Creio que a imagem abaixo explique o eu preciso. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Will Fernando 2 Denunciar post Postado Abril 20, 2010 SELECT problema.descricaoproblema , solucao.descricaosolucao FROM problema_x_solucao INNER JOIN problema, solucao ON (problema.idproblema = problema_x_solucao.idproblema) AND (solucao.idsolucao = problema_x_solucao.idsolucao); algo assim deve funciona =] valww obs: qualquer coisa procure o forum relacionado a banco de dados http://forum.imasters.com.br/index.php?/forum/179-modelagem-sql/ Compartilhar este post Link para o post Compartilhar em outros sites
Jaime_Pinheiro 0 Denunciar post Postado Abril 20, 2010 Banco: Caixa Economica Federal Agencia: 1553 Operacao: 013 Conta: 00567715-9 Aguardo o deposito e depois envio o código. Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Abril 21, 2010 @Kimura, Caso precise de suporte particular, consulte o Mercado iMasters ou a área de Ofertas para Freelancers Compartilhar este post Link para o post Compartilhar em outros sites
Kimura 0 Denunciar post Postado Abril 23, 2010 Olá, Primeiramente peço desculpas por passar uma ideia de que gostaria que alguém fizesse isso para mim. Essa nunca foi a minha intensão. O que estava acontecendo é que eu não estava conseguindo raciocinar uma forma prática de se fazer isso, mas felizmente já a encontrei. Volto aqui para pedir uma dica, coisa que ainda não fiz. Novamente uma imagem abaixo: Como eu posso fazer um mysql update nessa tabela? Notem, por exemplo, que a solução 1 está relacionada com os problemas 1, 5 e 6. Supondo que agora a solução 1 só esteja relacionada com os problemas 1 e 6, ou que entrem mais alguns problemas? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 23, 2010 Veja este tutorial, é exatamente o que quer fazer: http://forum.imasters.com.br/index.php?/topic/140816-mini-tutorial-de-mysql/ Compartilhar este post Link para o post Compartilhar em outros sites
Kimura 0 Denunciar post Postado Abril 23, 2010 Olá, Te agradeço Beraldo pelo link, mas não me serviu. Não sei se fui claro, vou tentar explicar mais uma vez: Tenho 3 tabelas: solucao, problema e problema_x_solucao. A tabela problema_x_solucao está relacionando as outras duas tabelas. Como eu estou trabalhando (php): ---- Gravação das informações ---- 1º - Insiro o problema na tabela problema; 2º - Quando vou inserir a solução aproveito para relacioná-la aos problemas (select multiple), gravando a solução na sua tabela particular (daí obtenho a id gerada), tendo a id e as opções marcadas (id dos problemas via select multiple) gravo tudo na tabela problema_x_solucao. ---- Exclusão das Informações ---- Consigo excluir perfeitamente um problema, pois acesso a sua informação na sua tabela particular. Consigo excluir perfeitamente uma solução, pois acesso a sua informação na sua tabela particular. ---- Alteração das Informações ---- Consigo alterar perfeitamente um problema, pois acesso a sua informação na sua tabela particular. Consigo alterar perfeitamente uma solução, pois acesso a sua informação na sua tabela particular. Não sei como acrescentar/excluir as informações da tabela problema_x_solucao, já que os dados estão relacionados. Ex.: id_problema | id_solucao 1 1 2 1 5 1 6 1 Significa: Os problemas 1,2,5 e 6 estão ligados a solução 1, correto? Mas se eu quiser tirar o problema 5 daí, ou acrescentar algum a mais, como eu faço? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 23, 2010 Mas se eu quiser tirar o problema 5 daí id_problema | id_solucao 1 1 2 1 6 1 Retiramos o 5. ou acrescentar algum a mais, como eu faço? id_problema | id_solucao 1 1 2 1 5 1 6 1 5 2 7 1 Adicionamos o problema 7 e incluímos mais uma solução para o 5 Era essa a dúvida? Compartilhar este post Link para o post Compartilhar em outros sites
Kimura 0 Denunciar post Postado Abril 23, 2010 Dessa forma fica fácil. Olha a imagem: Supondo que a ID desta solução acima é 1 e as IDs dos problemas marcados sejam 1,4 e 5. A minha tabela problema_x_solucao seria: 1 | 1 4 | 1 5 | 1 O campo solução aí eu gravo diretamente na tabela da solução. Ao lado eu tenho vários problemas (select multiple, que estão na tabela de problemas) e estão relacionados a esta solução via problema_x_solucao. Se eu quiser adicionar mais algum ou remover algum destes, como eu faria isso na tabela problema_x_solucao. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 24, 2010 Leia sobre integridade referencial e chaves estrangeiras. com isso, ao remover algo da tabela "problema" da ou "solução", os registros correspondentes em "problema_solucao" também serão removidos Compartilhar este post Link para o post Compartilhar em outros sites
Jaime_Pinheiro 0 Denunciar post Postado Abril 24, 2010 Primeiro, exclua todos os registros relacionados na tabela problema_x_solucao e depois insira-os novamente. Sempre que fores atualizar um registro de solucao, independentemente de alterar ou não o combobox de problemas(ou vice-versa), o fluxo é o seguinte: caso solucao nova: INSERT INTO solucao... caso solucao existente: UPDATE solucao ... WHERE solucao_id = $solucao_id DELETE FROM problema_x_solucao WHERE solucao_id = $solucao_id e para cada problema relacionado a esta solucao: INSERT INTO problema_x_solucao (problema_id, solucao_id) VALUES ($problema_id, $solucao_id) É óbvio que os comandos sql são meramente ilustrativos. Espero que ajude. Para exibir os dados relacionados é fácil: SELECT ifnull(ps.problema_id, 1, 0) AS relacionado, ps.problema_id, p.nome FROM problema p LEFT JOIN problema_x_solucao ps ON ps.problema_id = p.problema_id AND ps.solucao_id = $solucao_id Listará todos os problemas e os relacionados a solução em questão terão o valor relacionado = 1. Os outros terão relacionado = 0. Aí, monte o combobox e deixe selecionados as soluções onde relacionado = 1. Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Senni 1 Denunciar post Postado Abril 24, 2010 Relacionamento no Banco pode usa um ON DELETE ao excluir o Solução cod 5 o DB deleta tudo que tiver na tabela problema_x_solucao no campo solução cod 5. Pode usa a tela no Mysql Query (programa encontrado no site do fabricante) Compartilhar este post Link para o post Compartilhar em outros sites
Kimura 0 Denunciar post Postado Abril 26, 2010 Olá Pessoal, Agradeço todas as suas dedicações neste tópico. Consegui resolver o meu problema. Resumindo a história pra vocês o que eu estava sentindo dificuldade é que eu tenho em uma única página a inserção, alteração e exclusão das informações de três tabelas com conteúdos totalmente diferentes. Vlw mesmo. Compartilhar este post Link para o post Compartilhar em outros sites