Orm 带额外列的多对多自引用原则

Orm 带额外列的多对多自引用原则,orm,doctrine-orm,many-to-many,jointable,Orm,Doctrine Orm,Many To Many,Jointable,我在使用条令&我在多对多的自引用中遇到了一些问题,其中有一些额外的字段。 让我们描述一下我的场景: 我有一个名为Drug的表,药物之间可能会有冲突&这种冲突在某些情况下可能会出现&可能会有一些解决方案 我已经阅读了关于多对多关系的条令文件&其中提到JoinTable有一些额外的文件是不好的。 那么这个问题的最佳解决方案是什么呢 这是我的解决方案,但我不确定这是否是最好的 class Drug{ .. /** * @var DrugConfilict * * @ORM\OneToMany(

我在使用条令&我在多对多的自引用中遇到了一些问题,其中有一些额外的字段。 让我们描述一下我的场景: 我有一个名为Drug的表,药物之间可能会有冲突&这种冲突在某些情况下可能会出现&可能会有一些解决方案

我已经阅读了关于多对多关系的条令文件&其中提到JoinTable有一些额外的文件是不好的。 那么这个问题的最佳解决方案是什么呢

这是我的解决方案,但我不确定这是否是最好的

class Drug{
..
/**
 * @var DrugConfilict
 * 
 * @ORM\OneToMany(targetEntity="DrugConfilict", mappedBy="drug1")
 */
private $drugConfilict1s;

/**
 * @var DrugConfilict
 * 
 * @ORM\OneToMany(targetEntity="DrugConfilict", mappedBy="drug2")
 */
private $drugConfilict2s;
}


感谢您的回答:)

您提供的解决方案是正确的。如果您能描述实际冲突的性质,他们可能是更好的数据模型或数据处理方法。

谢谢您的回答!你所说的“描述实际冲突的性质”是什么意思?根据“现实世界”中的冲突,最好将其建模为一对多药物的冲突。
class DrugConfilict
{
/**
 * @var string
 *
 * @ORM\Column(name="confilict_conditions", type="text", nullable=true)
 */
private $confilictConditions;

/**
 * @var string
 *
 * @ORM\Column(name="what_should_do", type="text", nullable=true)
 */
private $whatShouldDo;

/**
 * @var Drug
 * 
 * @ORM\ManyToOne(targetEntity="Drug", inversedBy="drugConfilict1s")
 * @ORM\JoinColumn(name="drug1_id", referencedColumnName="id")
 */
private $drug1;

/**
 * @var Drug
 * 
 * @ORM\ManyToOne(targetEntity="Drug", inversedBy="drugConfilict2s")
 * @ORM\JoinColumn(name="drug2_id", referencedColumnName="id")
 */
private $drug2;
}