我正在尝试使用 SQLAlchemy 来实现一个基本的用户组模型,其中用户可以有多个组,组可以有多个用户。
当一个组变为空时,我希望删除该组(以及与该组相关的其他内容。幸运的是,SQLAlchemy 的级联可以很好地处理这些更简单的情况)。
问题是 cascade='all, delete-orphan' 不完全符合我的要求;当组为空时,它不会删除组,而是在任何成员离开组时删除组。
向数据库添加触发器可以很好地在组变为空时删除组,但触发器似乎绕过了 SQLAlchemy 的级联处理,因此与组关联的内容不会被删除。
当所有成员都离开并将此删除级联到相关实体时,删除组的最佳方法是什么。
我知道我可以通过在我的代码中找到用户可以离开组的每个位置然后执行与触发器相同的操作来手动执行此操作但是,我担心我会错过代码中的位置(而且我懒惰的)。