Re: hasandbelongstomany com três tabelas
Paulo, Se eu estou certo e, eu repito, SE eu estou certo: Você teria tres tabelas de relacionamento: Perfil_usuario Perfil_acao Usuario_Acao Cada uma conteria os campos ID chave das duas tabelas envolvidas. No controler faça, por exemplo: $this->Perfil->recursive=1; // ou algo maior que 1 Ao fazer uma pesquisa, por exemplo: $var = $this->Perfil->findAll(); O array $var ter a relação Perfil_usuario e Perfil_acao trazidas e, como a recursividade está >0, o cake retorna, também, o relacionamento Usuario_acao para os resultados de usuario e acao. Não estou conseguindo ser claro o suficiente, desculpe, não estou achando as palavras certas. Mas o que quero dizer que EU ACHO que não se deve fazer um relacionamento HABTM entre 3 tabelas ao mesmo tempo e sim um HABTM entre cada uma das tabelas envolvidas. Se eu estiver falando besteira é só gritar. Abraço, Benito. 2008/2/18 pamp_php <[EMAIL PROTECTED]>: > >Josenivaldo, > >E qual deverá ser o nome da tabela (muitos para muitos), onde > serão gravados os IDs das 3 tabelas, para que o cake enchergue > automaticamente a recursividade ? > >Exemplo: >* Em um relacionamento muitos para muitos, envolvendo as tabelas: > - perfil > - usuario >Terei a tabela: perfil_usuario com as seguintes colunas: > - perfil_id > - usuario_id > > >Se eu precisar realcionar: PERFIL->USUARIO PERFIL->ACAO -> ACAO- > >PERFIL ACAO->USUARIO USUARIO->ACAO USUARIO->PERFIL, portanto minha > tabela seria composta por: >- acao_id >- perfil_id >- usuario_id >Qual deveria ser o nome dessa tabela ? > > >No aguardo. Obrigado. > > >Paulo. > > > > > > > On 18 fev, 16:36, "Josenivaldo Benito Junior" <[EMAIL PROTECTED]> > wrote: > > Rafael, > > > > Acho que o conceito está errado. Um relacionamento ocorre entre duas > tabelas > > e não entre três. Se você precisa relacionar as 3 tabelas precisa > definir > > relações entre cada par de tabelas: > > > > Tabelas A, B e C > > > > Relações A->B , A->C, B->A, B->C, C->A e C->B > > > > Com a recursividade do cake você consegue acessar, através do > relacionamento > > A->B, a relação de B->C. Mas não vejo como você faria a conexão entre > três > > tabelas diretamente. > > > > Falei besteira? > > > > Abraço, > > Benito > > > > 2008/2/18 Rafael Bueno <[EMAIL PROTECTED]>: > > > > > > > > > > > > > > > > > Boa tarde pessoal !!!, então acontece o seguinte tenho um > > > relacionamento de muitos pra muitos com três tabelas e estou tentando > > > o seguinte > > > > > > tray_rotinas_loja.php > > > var $hasAndBelongsToMany = array("Tray_grupo", "Tray_acao"); > > > > > tray_acao.php > > > var $hasAndBelongsToMany = array("Tray_rotinas_loja", "Tray_grupo"); > > > > > tray_grupo.php > > > var $hasAndBelongsToMany = array("Tray_acao", "Tray_rotinas_loja"); > > > > > nome da tabela com as chaves estrangeira q faz a ligação das três > > > tabelas é: tray_acoes_tray_grupos_tray_rotinas_lojas > > > > > mais quando tento dar um findAll ou save retorna > > > > > Warning: SQL Error: 1146: Table 'traynewpainel.tray_acoes_tray_grupos' > > > doesn't exist > > > > > ñ sei pq mais o cake ñ conseguiu relacionar as três tabelas > > > > > valeu pessoal aguardo respostas > > > > -- > > Josenivaldo Benito Junior. PU2LBD > > Organizador do Concurso Brasileiro de 144 MHZ - CB144 (em conj. com > > PY2BRZ e PY2HCD)http://www.gbvudx.qsl.br > > Assine a Lista de e-mails do GBVUDX: > http://www.gbvudx.qsl.br/refletor_gbvudx.asp- Ocultar texto entre aspas - > > > > - Mostrar texto entre aspas - > > > -- Josenivaldo Benito Junior. PU2LBD Organizador do Concurso Brasileiro de 144 MHZ - CB144 (em conj. com PY2BRZ e PY2HCD) http://www.gbvudx.qsl.br Assine a Lista de e-mails do GBVUDX: http://www.gbvudx.qsl.br/refletor_gbvudx.asp --~--~-~--~~~---~--~~ Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" em Grupos do Google. Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL PROTECTED] Para ver mais opções, visite este grupo em http://groups.google.com/group/cake-php-pt?hl=pt-BR -~--~~~~--~~--~--~---
Re: hasandbelongstomany com três tabelas
Josenivaldo, E qual deverá ser o nome da tabela (muitos para muitos), onde serão gravados os IDs das 3 tabelas, para que o cake enchergue automaticamente a recursividade ? Exemplo: * Em um relacionamento muitos para muitos, envolvendo as tabelas: - perfil - usuario Terei a tabela: perfil_usuario com as seguintes colunas: - perfil_id - usuario_id Se eu precisar realcionar: PERFIL->USUARIO PERFIL->ACAO -> ACAO- >PERFIL ACAO->USUARIO USUARIO->ACAO USUARIO->PERFIL, portanto minha tabela seria composta por: - acao_id - perfil_id - usuario_id Qual deveria ser o nome dessa tabela ? No aguardo. Obrigado. Paulo. On 18 fev, 16:36, "Josenivaldo Benito Junior" <[EMAIL PROTECTED]> wrote: > Rafael, > > Acho que o conceito está errado. Um relacionamento ocorre entre duas tabelas > e não entre três. Se você precisa relacionar as 3 tabelas precisa definir > relações entre cada par de tabelas: > > Tabelas A, B e C > > Relações A->B , A->C, B->A, B->C, C->A e C->B > > Com a recursividade do cake você consegue acessar, através do relacionamento > A->B, a relação de B->C. Mas não vejo como você faria a conexão entre três > tabelas diretamente. > > Falei besteira? > > Abraço, > Benito > > 2008/2/18 Rafael Bueno <[EMAIL PROTECTED]>: > > > > > > > > > Boa tarde pessoal !!!, então acontece o seguinte tenho um > > relacionamento de muitos pra muitos com três tabelas e estou tentando > > o seguinte > > > > tray_rotinas_loja.php > > var $hasAndBelongsToMany = array("Tray_grupo", "Tray_acao"); > > > tray_acao.php > > var $hasAndBelongsToMany = array("Tray_rotinas_loja", "Tray_grupo"); > > > tray_grupo.php > > var $hasAndBelongsToMany = array("Tray_acao", "Tray_rotinas_loja"); > > > nome da tabela com as chaves estrangeira q faz a ligação das três > > tabelas é: tray_acoes_tray_grupos_tray_rotinas_lojas > > > mais quando tento dar um findAll ou save retorna > > > Warning: SQL Error: 1146: Table 'traynewpainel.tray_acoes_tray_grupos' > > doesn't exist > > > ñ sei pq mais o cake ñ conseguiu relacionar as três tabelas > > > valeu pessoal aguardo respostas > > -- > Josenivaldo Benito Junior. PU2LBD > Organizador do Concurso Brasileiro de 144 MHZ - CB144 (em conj. com > PY2BRZ e PY2HCD)http://www.gbvudx.qsl.br > Assine a Lista de e-mails do > GBVUDX:http://www.gbvudx.qsl.br/refletor_gbvudx.asp- Ocultar texto entre > aspas - > > - Mostrar texto entre aspas - --~--~-~--~~~---~--~~ Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" em Grupos do Google. Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL PROTECTED] Para ver mais opções, visite este grupo em http://groups.google.com/group/cake-php-pt?hl=pt-BR -~--~~~~--~~--~--~---
Re: hasandbelongstomany com três tabelas
Olá Rafael, Dei uma googleada ultra rápida (não refinei muito), mas acho que o que você quer fazer está representado aqui: http://images.google.com.br/imgres?imgurl=http://www.ariadne.ac.uk/issue27/paschoud/Image3.gif&imgrefurl=http://www.ariadne.ac.uk/issue27/paschoud/&h=402&w=576&sz=36&hl=pt-BR&start=34&tbnid=Tr76TkX4itZ63M:&tbnh=94&tbnw=134&prev=/images%3Fq%3D3%2Bway%2Brelation%2Btable%26start%3D18%26gbv%3D2%26ndsp%3D18%26hl%3Dpt-BR%26sa%3DN Verifique a figura: "*Figure 3: Tables, columns and relations within the RDM database (note: not all columns are shown here)*" Veja que a tabela Resource tem ligação HABTM com outras três tabelas, sempre pelo Resource-ID. Para cada ligação existe uma tabela HABTM. Se as tabelas, exemplo que estou imaginando, Keyword e Subject precisassem estar ligadas deveria haver outra HABTM entre essas duas tabelas e, através da recursividade do cake você conseguiria fazer buscas em Resource indicando Keyword e Subject e o relacionamento entre essas. Abraço, Benito 2008/2/18 Josenivaldo Benito Junior <[EMAIL PROTECTED]>: > Rafael, > > Acho que o conceito está errado. Um relacionamento ocorre entre duas > tabelas e não entre três. Se você precisa relacionar as 3 tabelas precisa > definir relações entre cada par de tabelas: > > Tabelas A, B e C > > Relações A->B , A->C, B->A, B->C, C->A e C->B > > Com a recursividade do cake você consegue acessar, através do > relacionamento A->B, a relação de B->C. Mas não vejo como você faria a > conexão entre três tabelas diretamente. > > Falei besteira? > > Abraço, > Benito > > 2008/2/18 Rafael Bueno <[EMAIL PROTECTED]>: > > > > Boa tarde pessoal !!!, então acontece o seguinte tenho um > > relacionamento de muitos pra muitos com três tabelas e estou tentando > > o seguinte > > > > > tray_rotinas_loja.php > > var $hasAndBelongsToMany = array("Tray_grupo", "Tray_acao"); > > > > tray_acao.php > > var $hasAndBelongsToMany = array("Tray_rotinas_loja", "Tray_grupo"); > > > > tray_grupo.php > > var $hasAndBelongsToMany = array("Tray_acao", "Tray_rotinas_loja"); > > > > nome da tabela com as chaves estrangeira q faz a ligação das três > > tabelas é: tray_acoes_tray_grupos_tray_rotinas_lojas > > > > mais quando tento dar um findAll ou save retorna > > > > Warning: SQL Error: 1146: Table 'traynewpainel.tray_acoes_tray_grupos' > > doesn't exist > > > > ñ sei pq mais o cake ñ conseguiu relacionar as três tabelas > > > > valeu pessoal aguardo respostas > > > > > > > > > > > -- > Josenivaldo Benito Junior. PU2LBD > Organizador do Concurso Brasileiro de 144 MHZ - CB144 (em conj. com > PY2BRZ e PY2HCD) > http://www.gbvudx.qsl.br > Assine a Lista de e-mails do GBVUDX: > http://www.gbvudx.qsl.br/refletor_gbvudx.asp -- Josenivaldo Benito Junior. PU2LBD Organizador do Concurso Brasileiro de 144 MHZ - CB144 (em conj. com PY2BRZ e PY2HCD) http://www.gbvudx.qsl.br Assine a Lista de e-mails do GBVUDX: http://www.gbvudx.qsl.br/refletor_gbvudx.asp --~--~-~--~~~---~--~~ Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" em Grupos do Google. Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL PROTECTED] Para ver mais opções, visite este grupo em http://groups.google.com/group/cake-php-pt?hl=pt-BR -~--~~~~--~~--~--~---
Re: hasandbelongstomany com três tabelas
Rafael, Acho que o conceito está errado. Um relacionamento ocorre entre duas tabelas e não entre três. Se você precisa relacionar as 3 tabelas precisa definir relações entre cada par de tabelas: Tabelas A, B e C Relações A->B , A->C, B->A, B->C, C->A e C->B Com a recursividade do cake você consegue acessar, através do relacionamento A->B, a relação de B->C. Mas não vejo como você faria a conexão entre três tabelas diretamente. Falei besteira? Abraço, Benito 2008/2/18 Rafael Bueno <[EMAIL PROTECTED]>: > > Boa tarde pessoal !!!, então acontece o seguinte tenho um > relacionamento de muitos pra muitos com três tabelas e estou tentando > o seguinte > > > tray_rotinas_loja.php > var $hasAndBelongsToMany = array("Tray_grupo", "Tray_acao"); > > tray_acao.php > var $hasAndBelongsToMany = array("Tray_rotinas_loja", "Tray_grupo"); > > tray_grupo.php > var $hasAndBelongsToMany = array("Tray_acao", "Tray_rotinas_loja"); > > nome da tabela com as chaves estrangeira q faz a ligação das três > tabelas é: tray_acoes_tray_grupos_tray_rotinas_lojas > > mais quando tento dar um findAll ou save retorna > > Warning: SQL Error: 1146: Table 'traynewpainel.tray_acoes_tray_grupos' > doesn't exist > > ñ sei pq mais o cake ñ conseguiu relacionar as três tabelas > > valeu pessoal aguardo respostas > > > > -- Josenivaldo Benito Junior. PU2LBD Organizador do Concurso Brasileiro de 144 MHZ - CB144 (em conj. com PY2BRZ e PY2HCD) http://www.gbvudx.qsl.br Assine a Lista de e-mails do GBVUDX: http://www.gbvudx.qsl.br/refletor_gbvudx.asp --~--~-~--~~~---~--~~ Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" em Grupos do Google. Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL PROTECTED] Para ver mais opções, visite este grupo em http://groups.google.com/group/cake-php-pt?hl=pt-BR -~--~~~~--~~--~--~---