比如:User hasOne Profile,删除用户时并不会同时删除 Profile 中的相关信息(我使用的是 SQLite,Mysql 没有测试)。
难道只能查询出来再删除?
比如:User hasOne Profile,删除用户时并不会同时删除 Profile 中的相关信息(我使用的是 SQLite,Mysql 没有测试)。
难道只能查询出来再删除?
你可以在 user的beforeDelete里面 写删除profile的代码。
嗯。这样也可以,不过我想这个事情如果由 AR 来自动执行是不是更好呢,或者在定义关系的时候添加一个参数,确定是由 AR 来自动执行还是手动执行。
yii不准备设计 关联删除。得自己动手
这样的考虑是??性能?
你可以考虑使用数据库foreign key constraint来自动删除关联表记录。
可是有的时候,我们删除记录时,不仅仅只是表中的记录,还有图片、文件附件等。这样的话还是要利用到像 afterDelete 这样的事件来做一些善后的工作。
而这样的需求,相对来说还是比较普遍的。而现在 AR 不支持级联删除,只能是手动来做这些善后工作了。不知 qiang 是否有提供级联删除这样的需求考虑,还是已经提供,我使用不当而已。呵呵。
这些附加的删除框架也很难做到,因为它不知道哪些资源文件需要删除,所以最终你还是需要自己写afterDelete
是的。附加资源的话当然是自己做善后处理。但是我想 AR 应该提供关联删除记录的功能。或者设定参数,由开发者确定是由 AR 来处理还是自己写代码来处理。
这个问题貌似大家都不是很关心。呵呵。不知是我的思维有误还是怎么的?欢迎指点。Thank’s
强哥。我觉得这个问题。可以考虑在设置relation的时候,通过参数来控制是否删除关联记录会比较好。(默认情况下,可以不开启)
使用“使用数据库foreign key constraint来自动删除关联表记录”的话,对数据库性能会有一定的影响。DBA一般不会让这么干