为了减少“愚蠢”表(几个相关的父实体相同的表),我们制作了一些通用表。
以下是一个例子:
现在问题是删除,很容易忘记删除,例如删除用户时的用户设置。
在PostgreSQL中处理这种表的删除的正确方法是什么?
答案 0 :(得分:1)
如果表关系仅在应用程序中具有意义且向上 - 即它与数据库中数据的引用完整性无关 - 您可以在应用程序层中执行此操作。
如果"孤儿"记录违反数据(而不是业务逻辑)关系,然后在数据库中执行此操作:最安全的方法可能是通过触发器,尽管它也有缺点(例如,混淆DML错误的可能性是如果涉及触发动作,则更高。)
我对你的问题的印象是,由于某些业务逻辑,这些表主要存在,在这种情况下,我会在ORM层中处理数据库之外的删除。