我目前正在使用Sytrfony 2在Doctrine ORM中设置关于事件管理应用程序的关联映射。我发现抓住这个概念有点令人困惑,所以如果你能告诉我在下列情况下需要两个映射,我将不胜感激:
应用程序中有用户(用户实体)和事件(事件实体)。
1。 (第一次映射)
一个用户可以成为许多活动的参与者/一个活动将许多用户作为与会者。
2。 (第二次映射)
每个活动只有一个用户所有者(设置活动的用户),但每个用户都可以是许多活动的所有者
我的假设如下:
Ad.1
此处需要 ManytoMany双向关联,因为User实体持有$events
,而Event实体持有$attendees
(两者都相互映射)
Ad.2
此处 ManytoOne单向关联是必需的,因为Event实体持有$owner
,而User实体不必映射到Event。
我将非常感谢您的反馈。我相信它会帮助我更好地理解这个概念。
谢谢!
答案 0 :(得分:1)
您的假设是正确的,在Doctrine上使用ManyToMany时要小心。 Doctrine将自动处理它,但要注意,如果你在多对多关联中有任何额外的列(除了与会者id和事件id),你需要将ManyToMany作为另一个实体本身处理。