Mysql Laravel 4.0级联删除和多态关系

Mysql Laravel 4.0级联删除和多态关系,mysql,laravel,laravel-4,cascade,Mysql,Laravel,Laravel 4,Cascade,我正在使用mysql的雄辩的plymorphic关系和ON DELETE CASCADE选项,我担心我的数据会随着时间的推移保持一致。让我解释一下: 如果我有一个模型房间,里面有几种家具(包括桌子、椅子、沙发),我决定把它删除,他的相关家具就不会被删除 为了解决这个问题,我在房间模型的删除事件中处理了相关家具的删除,但是这个事件不一定总是被解雇 假设我有另一个模型叫做房子,包含几个房间(有很多)。如果我决定删除它,它的相关模型将被mysql用ON delete CASCADE选项删除。然后,我将

我正在使用mysql的雄辩的plymorphic关系和
ON DELETE CASCADE
选项,我担心我的数据会随着时间的推移保持一致。让我解释一下:

如果我有一个模型房间,里面有几种家具(包括桌子、椅子、沙发),我决定把它删除,他的相关家具就不会被删除

为了解决这个问题,我在
房间
模型的删除事件中处理了相关家具的删除,但是这个事件不一定总是被解雇

假设我有另一个模型叫做
房子
,包含几个房间(有很多)。如果我决定删除它,它的相关模型将被mysql用
ON delete CASCADE
选项删除。然后,我将继续使用我的表格
表格
椅子
沙发
,这些数据不再相关,也不再与
房间的任何一行
表格相关


那么,保持数据库与DELETE CASCADE上的
和Eloquent的多态关系一致的最佳方法是什么呢?

如果您使用原始数据库(级联)方法,那么绕过Eloquent,就不可能做您想做的事情


为House设置一个已删除事件,该事件将遍历其所有文件室并删除这些文件室,从而再次触发文件室的已删除事件。

因此,如果我理解您所说的,在迁移中放置级联删除的功能实际上永远都不应该被使用,因为所有的删除都应该由Eloquent处理。我说的对吗?有时候级联工作很好,但如果您需要更高级的逻辑来确定何时删除(就像您的情况一样),请使用模型事件。