Доктрина SoftDelete OneToOne Отношения

У меня есть эти объекты в моем коде.

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? или есть лучший подход?

3

Решение

Честно говоря, я не очень хорошо понимаю поведение мягкого удаления. Вам нужно знать, что мягкое удаление объекта — это сильный компромисс в реляционной базе данных.

Возможно, вы захотите рассмотреть в данном конкретном случае подход источника событий. Я бы рекомендовал хранить информацию об удалении и (мягком) удаленном объекте в БД на основе документа.

Любой другой подход (например, Один ко многим) все еще в порядке, но имейте в виду, что риск здесь ухудшает ваши отношения, вводя несвязные отношения.

При этом я полностью осознаю, что в реальной жизни это совсем не то, что теория 🙂 удачи.

С уважением.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]