У меня есть эти объекты в моем коде.
class Review extends BaseEntity {
/** @ORM\OneToOne(targetEntity="Action", mappedBy="review") */
protected $action;
}
class Action extends BaseEntity {
/** @ORM\OneToOne(targetEntity="Review", inversedBy="action") */
protected $review;
}
Как вы можете видеть, это отношения OneToOne между Action и Review. Моя проблема в том, что я использую мягкое удаление и для своих сущностей, поэтому, когда я удаляю сущность, фактически не удаляется, устанавливается только дата удаления. Позже в контрольном журнале мне нужно показать удаленные отзывы, а также, конечно, мне нужна информация от родительского действия. У меня вопрос, нужно ли сделать эти отношения OneToMany? или есть лучший подход?
Честно говоря, я не очень хорошо понимаю поведение мягкого удаления. Вам нужно знать, что мягкое удаление объекта — это сильный компромисс в реляционной базе данных.
Возможно, вы захотите рассмотреть в данном конкретном случае подход источника событий. Я бы рекомендовал хранить информацию об удалении и (мягком) удаленном объекте в БД на основе документа.
Любой другой подход (например, Один ко многим) все еще в порядке, но имейте в виду, что риск здесь ухудшает ваши отношения, вводя несвязные отношения.
При этом я полностью осознаю, что в реальной жизни это совсем не то, что теория 🙂 удачи.
С уважением.
Других решений пока нет …