Giihh 6 Denunciar post Postado Abril 20, 2015 Bom dia, Estou tentando seguir a seguinte lógica 5 tabelas recebem cadastros diferentes. 1 usuario 2 personagem 3 local (de acordo com o local selecionado aparacem os produtos disponíveis para o personagem, são dois tipos) 4 Produto tipo 1 5 Produto tipo 2 No relacionamento das tabelas 1 tabela - Usuario 2 tabela - usuario (tabela 1) seleciona um personagem (algum id tabela 2) 3 tabela - usuário seleciona um local (algum id tabela 3) que o personagem (id da tabela 2) tem como preferencia, automaticamente aparecem os itens da tabela 4 e 5 que estão disponiveis no local selecionado. 4 tabela - usuario seleciona produto tipo 1 que aparecerão de acordo com o id (local) selecionado na tabela 3 5 tabela - usuario seleciona produto tipo 2 que aparecerão de acordo com o id (local) selecionado na tabela 3 Os Cruds das 5 tabelas (mysql e php) consigo fazer, mas quero aprender como usar no mysql INNER JOIN, LEFT JOIN e RIGHT JOIN e se é um desses mesmo que tenho que usar. Agradeço quem puder ajudar Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Abril 21, 2015 Saudações. Dá uma estudada aqui camarada, quando terminar você certamente saberá do que se trata. http://www.devmedia.com.br/inner-cross-left-rigth-e-full-joins/21016 Abraço. Se tiver dúvidas ainda assim, pergunte novamente. Se entendeu, também nos informe. Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Maio 9, 2015 Muito obrigada vamos ver se entendi. Tem um sistema que estou estudando e nele tem muitos JOINs. Mas relacionamento na tabela mesmo, com foreign key, não tem nenhum. Então por exemplo: join('produtos AS pd', 'pd.id_produto = uso_produto.pd_ID'); Assim as duas tabelas tanto produto como uso_produto terão os campo pd_ID e id_produto com valor idêntico, ou seja o mesmo "id". Mas o que acontece, é que a tabela uso_produtos é usada como histórico, tem joins com ids de outras tabelas como usuario, filial, etc, então quando exclui um produto (id_produto), ele realmente é excluido, e todos os campos que tem o referente id na tabela uso_produtos ficam vazios, essa tabela que seria um historico de uso fica com "defeito" já que informações que deveriam ficar sempre lá foram deletadas. E no php (sistema criado no codeigniter) parece um monte de erros, especificamente na pagina Histórico de uso do produto. Gostei e entendi a funcionalidade do join mas ai pergunto como contornar esse problema, pra ser possivel excluir e não comprometer o que já esta salvo no DB? Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Maio 15, 2015 Se o registro está vazio, então ele não tem vínculo. O correto era utilizar Foreing Key, assim ao excluir o registro relacionado, ele também seria apagado. Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Maio 15, 2015 Exatamente, o que ocorre é que os relacionamentos estão ocorrendo no "código php" através de varios joins, ao meu ver o que resolveria é criar uma condição php que identificaria se o id apenas passou pelo processo de cadastro, se sim pode ser deletado, mas se aconteceu algum join com outra tabela, pra não permitir excluir, deve criar uma condição no php, nisso evita erros de apagar algum cadastro que faça parte de um historico. Agora assim, em relação ao desempenho das consultas no DB desse jeito vai ter problemas com lentidão se um historico de uso for grande? Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Maio 17, 2015 Depende. Toda consulta, se não efetuada corretamente, irá afetar o desempenho do servidor. Porém, não acredito que esse seja o seu caso. Compartilhar este post Link para o post Compartilhar em outros sites