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



首先是简化的场景:

  • 商家有产品

  • 商家有分类

  • 产品有子类别

  • 商家的产品类别必须以商家的类别作为父类别

这是使用RDBMS方法建模的。我使用Postgres为我的数据库和Django作为web框架。我们有启用/禁用产品/类别/商家等功能。这些影响必须是级联的,数据应该保持一致。这应该在哪里处理?我可以在我的数据库中有触发器来强制执行这一点,或者在我的Django模型中使用方法/信号,如pre save/post save, pre init/post init来做同样的事情。哪个更合适。与SQL相比,我更熟悉python,并且相信通过Django模型来完成它会使它更易于修改,因为在我的公司中,需求容易发生频繁和突然的变化。

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

(我已经将一个应用程序从大约10个表扩展到大约70个表,数据模型中由DB模式保证的部分从那时起就一直很干净。试图在"更高"级别上保持一致性的部分(有时会搞砸)

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

相关内容

  • 没有找到相关文章

最新更新