- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的代码中有这些实体。
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/
检查这些 SO 文章后:cascade-delete-in-entity-framework , ef6-1-soft-delete-with-cascade-delete , cascading-s
我正在迁移中将软删除列添加到我的表中: public function up() { Schema::table("users", function ($table) { $t
Laravel 4.1 会在 softDeletes 时自行管理唯一索引的创建(其中 deleted_at = null)吗? 下面的方法是否正确?还是会混入已删除的记录? Schema::creat
我使用 Ef Core 2.1,我在其中启用了软删除查询过滤器。 在某些情况下,我想从一个实体中检索一个软删除的导航属性,但我无法检索到数据(导航属性为空,因为它被软删除了)。 我用了这个doc (2
我的实体 User 通过 OneToOne 关系与其他实体相关,并且我正在对所有实体进行级联“删除”。 我正在使用 SoftDeleteable 行为扩展,因此当我删除 User 时,该实体实际上并未
TLDR:当我的父模型中包含 SoftDeletes 特征时,我不再将父模型的软删除实例作为子模型的动态属性。如何做到这一点? 我定义了几个基本模型,如下所示: hasMany("App\Post")
我想知道如何将 Laravels softdelete 与 MySql foreign key restrict 约束一起使用。 框架中是否已经内置了一些东西? Softdelete 已经在工作,但我
软删除时出现以下异常。我不确定错误在哪里?谁可以帮我这个事。提前致谢 org.springframework.dao.DataIntegrityViolationException: coul
我的老板为软删除过滤器安装了这个包,但是 documentation是稀疏的。如何在我的删除查询中使用它? 最佳答案 在你的配置中启用它: stof_doctrine_extensions:
如果我有一个 PHP Doctrine 对象作为 SoftDelete,是否可以在某些查询的结果中包含已删除的项目?我正在寻找的是这样的东西...... $q = Doctrine_Query::cr
我的代码中有这些实体。 class Review extends BaseEntity { /** @ORM\OneToOne(targetEntity="Action", mappedBy=
我想制作一个使用 SoftDeletes 的特征命名 SoftDeletesWithStatus这也将更新状态列。我的问题是我想在SoftDeletes中间实现我的代码的功能是这样的: protect
我有一个出版物表,它与表评论是一对多的关系,每个出版物都有很多评论。 我在前端使用 AngularJS,在后端使用 Laravel,在数据库使用 MySQL。 假设我要softDeletes() 一个
我继承了一个使用 LLBLGen Pro 作为 DB 层的项目。 DB模型要求当一个条目被删除时有一个标志(DeletedDate设置为当前时间)。最后一个程序员忽略了这个要求,并在整个应用程序中使用
有谁知道 的替代品吗? SoftDeletable Behavior 与 兼容蛋糕 1.3.x ? 如果没有任何现成的行为可用,有关我如何在最新的 Cake 中执行此操作的任何建议? 想出了一个快速的
我可以在 ManyToMany 引用表上添加 SoftDelete 行为,这将添加一个 Deleted_at 列。不幸的是,将该列设置为非 NULL 值,不会过滤掉关系。这是我所希望的。 有人知道没有
我已将表中的主键从 id 更改为 pr_id 和 mobile。 $table->primary(['pr_id' , 'mobile']); 我还在模型中添加了 SoftDelete Trait。但
Softdelete 行为在通过实体管理器执行删除语句时工作正常,如下代码: $entity = $this->em->getRepository('Users')->find(7); $this->
当我删除带有 softDelete 列的实体时,deletedAt 和 deletedBy 为空或未设置。 如果我尝试 softRemove,它只会设置 deletedAt 标志。 下面是实体的一些代
我在来自 https://github.com/KnpLabs/DoctrineBehaviors/#softDeletable 的实体中使用 SoftDeletable 特性它工作正常,但有时我想强
我是一名优秀的程序员,十分优秀!