Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JCMais

Associações ManyToMany e OneToMany

Recommended Posts

Estou construindo duas entidades do Doctrine, a User e a Friends.

Só que não estou sabendo como relacionar as duas. :(

 

Vejamos a estrutura:

 

 

--
-- Estrutura da tabela `friends`
--
CREATE TABLE IF NOT EXISTS `friends` (
 `user_id` int(10) NOT NULL,
 `friend_id` int(10) NOT NULL,
 `status` varchar(10) NOT NULL DEFAULT 'normal',
 PRIMARY KEY (`user_id`,`friend_id`),
 KEY `FK_FRIENDS_1` (`user_id`),
 KEY `FK_FRIENDS_2` (`friend_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `friends`
 ADD CONSTRAINT `friends_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE,
 ADD CONSTRAINT `friends_ibfk_2` FOREIGN KEY (`friend_id`) REFERENCES `user` (`id`) ON DELETE CASCADE;

--
-- RELAÇÕES PARA A TABELA `friends`:
--   `user_id`
--       `user` -> `id`
--   `friend_id`
--       `user` -> `id`
--
---------------------------------------
--
-- Estrutura da tabela `user`
--
CREATE TABLE IF NOT EXISTS `user` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

 

 

 

Qual seria a relação correta: ManyToMany ou OneToMany?

 

Se um usuário pode ter vários amigos, então o correto no caso seria OneToMany, porém se eu pegar a entidade por completa passa a ser ManyToMany, pois vários usuários podem ter vários amigos.

 

Eu acho que estou confundido essas associações. :ermm:

 

EDIT: Lendo aqui já está parecendo que é ManyToMany. <_<

 

Bump :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um usuário pode ter vários amigos.

Mas e um amigo, pode ter quantos usuários?

 

Se a resposta for vários, é uma associação Many To Many. Se tiver apenas um, será uma relação One To Many.

 

É esta a sua dúvida?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.