首页 > 解决方案 > 原则多对多加上其他实体

问题描述

我有一个板和前缀。

某些前缀仅与某些板有关,其他前缀可能与所有板有关。

所以我得到了板和前缀之间的manyoMany关系。

如何添加这些数量的前缀附加前缀(标有 flag allowedAtAllboards)?

或者这个标志不是一个干净的解决方案,我应该用所有前缀扩展我的交叉表,比如

prefix_id | board_id
1|1
1|2
1|3
...

编辑:我有 3 张桌子:板,上面有关于板的信息,如 id、name ...

以 id、name 为前缀

board_x_prefix 与 board_id、prefix_id

我需要板和前缀之间的关系,我创建了以下关系:

/**
 * @ManyToMany(targetEntity="Prefix")
 * @JoinTable(name="board_x_prefix",
 *      joinColumns={@JoinColumn(name="prefix_id", referencedColumnName="id")},
 *      inverseJoinColumns={@JoinColumn(name="board_id", referencedColumnName="id", unique=true)}
 *      )
 */

现在我将所有前缀映射到板上,这取决于 board_x_prefix 中的条目,如下所示$board->getPrefixes()

prefix_id | board_id
1|1
1|2
1|3
2|3
...

问题是,我想要与所有板一起使用的附加前缀,所以我在allowedAtAllboards前缀类上创建了标志,但当然这些前缀的数量不是由$board->getPrefixes().

我可以在模型(板或前缀)本身中处理我得到所有映射的所有前缀和带有标志的所有前缀,$board->getPrefixes()还是我必须编写一个存储库类?

对不起,我希望现在清楚了

标签: phpdoctrine-orm

解决方案


推荐阅读