я работаю с доктриной, и у меня есть проблема с самоссылкой «многие ко многим», которая имеет некоторые дополнительные поля. давайте опишем мой сценарий: у меня есть таблица с именем «Наркотики», наркотики могут конфликтовать друг с другом, и эти конфликты могут возникать при некоторых условиях и могут иметь некоторые решения.
я читал доктринальные документы об отношениях «многие ко многим», и упоминалось, что для 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;
}
спасибо за ваши ответы :)