为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 算法,用于使用新条目更新数据库记录并删除丢失的记录,而不删除当前保存的条目

PHP 算法,用于使用新条目更新数据库记录并删除丢失的记录,而不删除当前保存的条目

PHP
慕姐4208626 2023-09-08 21:33:52
在数据库中,我有多个问题的答案值:问题1 -> 答案1 答案2问题2 -> 答案3 答案4 答案5--现在用户提交了对这些答案的更新:问题1 -> 答案1 答案2 答案6问题2 -> 答案3 答案4--那么,做出这些改变的最佳方式是什么?我需要删除丢失的条目,添加新条目而不删除旧值。最简单的方法是删除所有旧答案并编写新答案。但我的系统具有软删除功能,因此删除的条目并未真正删除,只是标有删除日期。如果我这样做,数据库表增长得非常快,因为每次用户进行更新时它都会写入数十个新条目。我能想到的另一种方法是分两次迭代进行:第一次将保存的值与新值进行比较,如果找不到匹配则删除保存的值。第二次迭代将新值与旧值以及缺少的所有内容进行比较。但也许还有更实用、更有效的方法呢?
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

您可以使用 symfony 属性访问器组件来为您处理差异计算。

在您的问题对象上,您必须实现getAnswers()读取值的方法、addAnswer($answer)添加单个答案的方法和removeAnswer($answer)删除单个答案的方法。

然后,在您的控制器/服务/命令中,您必须注入属性访问器(PropertyAccessorInterface)并调用$propertyAccess->setValue($question, 'answers', $newAnswers);

这将仅针对更改的值调用加法器和移除器。


查看完整回答
反对 回复 2023-09-08
  • 1 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号