如何设置Doctrine自引用,非唯一关系

时间:2014-05-01 00:24:26

标签: symfony doctrine-orm entity-relationship self-reference

我有一个带有' id'的任务实体。和依赖'柱。我目前的设置有依赖性'与OneToOne的自我引用关系' id'。这个想法是每个任务都可以分配一个依赖关系,但是这个依赖关系并不仅仅是一个任务所独有的。

例如,任务4和任务5都可以具有任务2的依赖关系,但是4和5不需要彼此了解任何事情。

一切正常,直到我尝试将相同的任务作为依赖项分配给两个不同的后续任务。似乎OneToOne关系被定义为唯一的,并且不是可以更改的东西。这让我试图找出实现我想要的最佳方式。我想要一个单向关系,因为前面的任务不需要知道依赖它的后续任务。

ManyToOne似乎没有意义,因为一个Task只能有一个依赖项。 OneToMany为“id”提供信息。关于相关任务的专栏,这是不需要的,我不确定在更新实体时是否会出现无法预料的后果?

也许我不理解事情(对于Doctrine来说还是比较新的),所以如果有人能指出我正确的方向,我会很感激。

1 个答案:

答案 0 :(得分:0)

虽然走这条路看起来非常直观,但我最终使用了ManyToMany单向自引用关系来实现我的目标。因为我不想惹这个' id'根本就是一列(它是主要的,唯一的密钥,自动递增),我无法实现双向关系。这似乎不可能像我想要的那样使用ManyToOne(也许我做错了,但我无法得到它),但是很可能使用ManyToMany。

谁知道,也许将来我实际上想要使用多个依赖项,所以这确实在这方面给了我一点灵活性。