【问题标题】:ManyToMany self-referenced with extra column in Doctrine多对多自引用,在 Doctrine 中有额外的列
【发布时间】:2013-10-16 16:34:50
【问题描述】:
我的问题很容易用纯 SQL 解决,但我需要用 YAML 中的 Doctrine 来解决。
我有众所周知的数据库表用户和朋友。其中 users 表的主键为 user_id,friends 的主键为 friend_id 和 friend_with_id,它们使用表 user 中的 user_id。当我需要再添加一个专栏情绪时,我的问题就开始了。使用 SQL,我向表朋友添加了一个名为 mood 的列,但它已经完成了学说,我找不到任何解决方案。
为了更好地理解,我添加了 db 方案:
【问题讨论】:
标签:
doctrine-orm
doctrine
many-to-many
【解决方案1】:
我在这里看不到任何自指关系。 friend_id 和friend_with_id 都指向users.user_id。我看到的是,来自用户端的两个一对多关系或来自朋友端的两个多对一关系。
那么,Friend实体中就会有两个ArrayCollection对象(ManyToOne),分别对应friend_id和friends_with_id。类似地,User 实体上有两个 ArrayCollections (OneToMany),即 myFriends 和 friendsWith。