gpt4 book ai didi

php - Doctrine SoftDelete 一对一关系

转载 作者:搜寻专家 更新时间:2023-10-31 22:00:17 26 4
gpt4 key购买 nike

我的代码中有这些实体。

class Review extends BaseEntity {

/** @ORM\OneToOne(targetEntity="Action", mappedBy="review") */
protected $action;
}


class Action extends BaseEntity {

/** @ORM\OneToOne(targetEntity="Review", inversedBy="action") */
protected $review;
}

如您所见,Action 和 Review 之间是一对一的关系。我的问题是我也对我的实体使用软删除,所以当我删除实体时,实际上并没有删除,只设置了删除日期。稍后在审计跟踪中,我需要显示已删除的评论,当然我还需要来自父操作的信息。我的问题是,我需要建立这种关系 OneToMany 吗?还是有更好的方法?

最佳答案

老实说,我不太了解软删除行为。您需要注意的是,软删除实体是关系数据库中的一种严重妥协。

在此特定实例中,您可能需要考虑一种事件溯源方法。我建议将有关删除和(软)删除实体的信息存储在基于文档的数据库中。

任何其他方法(如 OneToMany)仍然可以,但请记住,这里的风险是通过引入不连贯的关系来降低你们的关系。

话虽如此,我完全意识到现实生活与理论完全不同 :) 祝你好运。

问候。

关于php - Doctrine SoftDelete 一对一关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30219676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com