在我的工作中,我经常在我的django模型中有两个表,并且必须连接它们以将此数据作为csv返回。该数据未通过外键连接,但它们具有连接它们的标识符。这是因为我们从两个不同的来源导入这些数据,有时缺少对应的数据,所以在创建条目时我无法连接它。
我的问题是:如果您认为我经常需要返回此数据,那么在性能方面连接此数据的最佳方法是什么?
class OrderInvoiceConnector(models.Model):
order_data = models.ForeignKey(Order, related_name="invoice")
invoice_data = models.ForeignKey(Invoice, related_name="order")
class ConnectedData(models.Model):
invoice_id = models.CharField(max_length=255)
country_iso = models.CharField(max_length=255)
invoice_date = models.CharField(max_length=255)
tax = models.FloatField(max_length=255)
price = models.FloatField()
答案 0 :(得分:1)
我会选择第二种变体,因为您提到加入会很昂贵,并且每天都会生成数据更改。如果您创建只读模型,您将在单个表查询中打包所有必需的数据以供用户使用。您必须使用某些自动化作业填充数据,但在您提到的场景中这看起来是可以接受的。