如何在原则 2 中设置具有额外列的联接表,或与附加属性的多对多关联?
首先,让我解释一下,这确实不存在:
连接表(也称为连接表或交叉引用表)是通过主键将同一数据库中的 2 个(或更多)其他表链接在一起的表。 这意味着连接表将只包含外键,没有地方容纳这些额外的列。
因此,当您需要在这样的表中添加额外的列时,它不再只是其他表之间的“链接”,而是自己成为一个真正的表!
根据原则 2,您不再在 2 个实体之间建立多对多关联,而是在 3 个实体之间建立一对多/多对一关联。
继续阅读此处以获取更详细的解释:
在第二篇文章中,我建议进行一些小更新。不要使用完整的事件,而是在实体本身内使用 LifecycleCallback:
/**
* @ORM\Entity
* @ORM\Table(name="jobs”)
* @ORM\HasLifecycleCallbacks
*/
class Job
{
// ...
/**
* @ORM\PreRemove
*/
public function preRemoveCallback()
{
$this->setPerson(null);
$this->setCompany(null);
}
}