Django模型中有效的方式来存储商业商店的交易中购买的商品

时间:2017-04-23 13:41:48

标签: mysql django database django-models

我创建了两个简单的Django模型。 一个模型只是持有账单细节。 另一个持有该法案中购买的物品清单,通过外键关系链接。 我遇到了使用此实现创建一个非常大的数据库的问题。 模型类:

class Bill(models.Model):
    seller_id = models.ForeignKey(User , related_name = 'bill')
    amount = models.DecimalField(max_digits = 7 , decimal_places = 2)
    customer_id = models.ForeignKey(User , related_name = 'bill')

class BillItems(models.Model):
    bill = models.ForeignKey(Bill , related_name = 'items')
    product = models.ForeignKey(Product , related_name = 'items')
    quantity = models.DecimalField(max_digits = 6 , decimal_places = 3)

现在我看来,经过一段时间后,我的数据库( MySql )会有非常多的 Bill Items'实例。 有没有更好的方法来实现这样的结构? 要么 有没有办法优化这种结构?

谢谢和问候。

1 个答案:

答案 0 :(得分:1)

  • 我不认为这是一个很大的问题(最糟糕的是它会比Bills表有x10记录,这在DB世界中并不是那么重要)。
  • 但如果必须,更好的方法是在Bills和Product之间建立多对多的关系。唯一的问题是添加"数量"到你的桥牌桌。您可以查看有关如何实施它的this答案。