应该在哪里维护数据完整性?

where should data integrity be maintained?

先简化场景:

这是使用 RDBMS 方法建模的。我使用 Postgres 作为我的数据库,使用 Django 作为 Web 框架。我们有 enabling/disabling a product/category/merchant 等功能。这些的影响必须级联并且数据应该保持一致。这应该在哪里处理?我可以在我的数据库中使用触发器来执行此操作,或者在我的 Django 模型中使用 methods/signals 像 pre save/post save,pre init/post init 来执行相同的操作。哪个更合适。与 SQL 相比,我对 python 更满意,并且相信通过 Django 模型进行修改会使它更易于修改,因为在我的公司,需求很容易发生频繁和突然的变化。

如果确实是关于 数据 完整性,请在 Postgres 中进行,当您的数据模型时 保持 一致性会容易得多扩大。

(我已经将一个应用程序从大约 10 个表增加到大约 70 个表,从那时起,数据库模式确保的数据模型部分一直很干净。 尝试过的部分 据称在 "higher" 水平上保持一致性,有时会搞砸)

如果是关于应用程序的行为,请在 django 中执行。