Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 条令-删除父实体后保存关联_Php_Doctrine Orm_Doctrine - Fatal编程技术网

Php 条令-删除父实体后保存关联

Php 条令-删除父实体后保存关联,php,doctrine-orm,doctrine,Php,Doctrine Orm,Doctrine,我有两个具有一对多关系的实体-用户和日志 类用户{ /**@OneToMany(targetEntity=“Log”,mappedBy=“user”)*/ 私人日志; } 类日志{ /** *@manytone(targetEntity=“User”,inversedBy=“logs”) *@JoinColumn(name=“user\u id”,referencedColumnName=“id”) */ 私人用户; } 我想要实现的是:一旦我删除用户实体,而不是级联删除所有用户日志,我希望

我有两个具有一对多关系的实体-用户和日志

类用户{
/**@OneToMany(targetEntity=“Log”,mappedBy=“user”)*/
私人日志;
}
类日志{
/**
*@manytone(targetEntity=“User”,inversedBy=“logs”)
*@JoinColumn(name=“user\u id”,referencedColumnName=“id”)
*/
私人用户;
}
我想要实现的是:一旦我删除
用户
实体,而不是级联删除所有
用户
日志,我希望能够保存这些日志,并且仍然能够保留该
用户id
。我正在考虑创建一个新的数据库表
old_logs
,其结构与
logs
表相同,其中
User
实体中的所有数据将在删除
User
实体之前复制到该表中,因为我相信我不能让
User\u id
指向不存在的用户(使用外键).


通过条令实体类可以这样做吗?

进行软删除不是更容易/更好吗。@ArtisticPhoenix您的意思是在用户的列中添加已删除的\u吗?仔细想想,它确实解决了我的问题,但它仍然让logs表充满了不必要的日志。我的计划是在极少数情况下保留这些日志作为一种潜在的恢复选项。为什么不定期备份数据呢?我每周备份1次,本月每周备份1次,之后每月备份1次,等等。我的想法是,备份时间越长,所需的粒度就越小。不确定你的意思是否是这样。软删除听起来像是你需要的。易于实现。你真的会保留当时的冗余记录。但是,您可能希望添加一个“硬删除”选项,或者在X period之后添加一个自动过程,以便能够硬删除所有内容(用户和日志记录)。我决定使用软删除选项。我正在考虑使用条令事件,但我决定使用更简单的方法。如果它们变老了,我还是要删除它们。软删除不是更容易/更好吗。@ArtisticPhoenix你的意思是在用户栏中添加已删除的内容吗?仔细想想,它确实解决了我的问题,但它仍然让logs表充满了不必要的日志。我的计划是在极少数情况下保留这些日志作为一种潜在的恢复选项。为什么不定期备份数据呢?我每周备份1次,本月每周备份1次,之后每月备份1次,等等。我的想法是,备份时间越长,所需的粒度就越小。不确定你的意思是否是这样。软删除听起来像是你需要的。易于实现。你真的会保留当时的冗余记录。但是,您可能希望添加一个“硬删除”选项,或者在X period之后添加一个自动过程,以便能够硬删除所有内容(用户和日志记录)。我决定使用软删除选项。我正在考虑使用条令事件,但我决定使用更简单的方法。如果它们变老了,我还是要删除它们。