【问题标题】:ForeignKeys and historical dataForeignKeys 和历史数据
【发布时间】:2019-11-08 05:05:01
【问题描述】:

我有一个报价表,它根据大量参数生成价格。价格是根据来自多个其他表的数据生成的,例如:费用、优惠券、促销等。处理它的最佳方法是使用 ForeignKeys。这是表格(所有 _id 字段都是外键):

Quote
#user input fields
charge_id
promotion_id
coupon_id
tariff_id

一切看起来都不错。每条报价记录都有非常详细的数据,可以告诉您价格的来源。问题是它所依赖的表中的数据不能保证保持不变。它可能会被删除或更改。假设一个报价有一个关税的外键,然后它被改变了。与之相关的记录不再讲述同样的故事。你如何处理这样的事情?如果您推荐一些与此相关的理论,将不胜感激。

【问题讨论】:

    标签: python django database postgresql


    【解决方案1】:

    如果您不希望引用值因外键相关对象的更改而改变,最好的办法是在 Quote 类中添加来自各个外键模型的所有字段。

    然后在计算 Quote 的值时,您从所有(现在不相关的)对象中获取数据并将它们保存在 Quotes 表中。

    现在对 Foreign 表的任何更改都不会影响 Quotes 表。

    另一种选择是使用像 django-simple-history 这样的库,它会随着时间的变化跟踪模型的所有变化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 2019-02-04
      相关资源
      最近更新 更多