我想知道从无限类别表中删除类别(包含所有子类别)的最佳方法是什么。
我打算一起去;
由于它是无限制的类别系统,最后运行另一个函数来清除表中没有parent_id记录的类别。
还有其他方法,最好是更优雅的方式来实现这个目标吗?
修改 我的类别表的结构
array(8) {
["id"]=>
NULL
["parent_id"]=>
NULL
["siteID"]=>
NULL
["memberGroups"]=>
NULL
["name"]=>
NULL
["language"]=>
NULL
["protectDelete"]=>
NULL
["typeID"]=>
NULL
}
感谢您的时间和关注。
答案 0 :(得分:2)
如果关注的是删除许多其他记录具有引用约束的记录,则严格删除可能不是正确的方法。
相反,也许尝试“软删除”,而不是删除记录,而是在记录上设置一些标志(例如IsActive位/ tinyint字段设置为false
或0
)。然后,围绕数据库的逻辑需要知道对该字段进行过滤。如果所有数据访问都是通过存储过程或通过代码中的中央数据访问层完成的,则过滤特别容易,因为过滤器可以对应用程序的其余部分透明。
这有点逻辑/工作,但请注意这里的额外好处: