Python 外国钥匙和历史数据

Python 外国钥匙和历史数据,python,django,database,postgresql,Python,Django,Database,Postgresql,我有一个报价表,它根据许多参数生成价格。价格是根据多个其他表格(如:费用、优惠券、促销等)的数据生成的。处理价格的最佳方法是使用外键。这是表(所有_id字段都是外键): 一切看起来都很好。每个报价记录都有非常详细的数据,告诉您价格的来源。问题是它所依赖的表中的数据不能保证保持不变。它可能会被删除或更改。假设一个报价有一个关税的外键,然后它被更改了。与之相关的记录不再讲述相同的故事。你怎么处理这样的事情?如果您能推荐一些与此相关的理论,我将不胜感激。如果您不希望您的报价值因外键相关对象的更改而更改

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


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

如果您不希望您的报价值因外键相关对象的更改而更改,最好是将各个外键模型中的所有字段添加到quote类中

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

现在,对外部表的任何更改都不会影响Quotes表

另一种选择是使用类似and的库,该库跟踪模型随时间的变化所做的所有更改

Quote
#user input fields
charge_id
promotion_id
coupon_id
tariff_id