Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 对于相似的对象,最好有几个不同的表,还是一个大表?_Python 3.x_Django_Django Models_Orm - Fatal编程技术网

Python 3.x 对于相似的对象,最好有几个不同的表,还是一个大表?

Python 3.x 对于相似的对象,最好有几个不同的表,还是一个大表?,python-3.x,django,django-models,orm,Python 3.x,Django,Django Models,Orm,我的桌子存在优化问题: 我有项目,它们可以有一个价格乘以一、乘以十和乘以一百 现在我有三张桌子: class Prix_x1(models.Model): def __str__(self): return self.item.name prix = models.IntegerField(null=True) saved_at = models.DateTimeField() item = models.ForeignKey(Item, on_

我的桌子存在优化问题:

我有
项目
,它们可以有一个
价格
乘以一、乘以十和乘以一百

现在我有三张桌子:

class Prix_x1(models.Model):
    def __str__(self):
        return self.item.name

    prix = models.IntegerField(null=True)
    saved_at = models.DateTimeField()
    item = models.ForeignKey(Item, on_delete=models.CASCADE)


class Prix_x10(models.Model):
    def __str__(self):
        return self.item.name

    prix = models.IntegerField(null=True)
    saved_at = models.DateTimeField()
    item = models.ForeignKey(Item, on_delete=models.CASCADE)


class Prix_x100(models.Model):
    def __str__(self):
        return self.item.name

    prix = models.IntegerField(null=True)
    saved_at = models.DateTimeField()
    item = models.ForeignKey(Item, on_delete=models.CASCADE)
但我经常需要检查这些价格中哪一个是每单位最低的。因此,每次我需要检查每种商品的价格表。
所以我的问题是:这是一个更好的优化方法吗

例如,有一个大表
Price
和一个字段
number\u of_unit
可以取1、10或100作为值是否更好


谢谢你的帮助

我想最好有一张桌子

class Prix(models.Model):
    def __str__(self):
        return self.item.name

    prix = models.IntegerField(null=True)
    prix_x = models.IntegerField(null=True)
    saved_at = models.DateTimeField()
    item = models.ForeignKey(Item, on_delete=models.CASCADE)

保存并增加prix和prix_x

我认为最好有一个表

class Prix(models.Model):
    def __str__(self):
        return self.item.name

    prix = models.IntegerField(null=True)
    prix_x = models.IntegerField(null=True)
    saved_at = models.DateTimeField()
    item = models.ForeignKey(Item, on_delete=models.CASCADE)

保存并增加prix和prix_x

您只需在模型中为每个价格设置一个现货:

class Prix(models.Model):
def __str__(self):
    return self.item.name

prix_x1 = models.IntegerField(null=True)
prix_x10 = models.IntegerField(null=True)
prix_x100 = models.IntegerField(null=True)

saved_at = models.DateTimeField()
item = models.ForeignKey(Item, on_delete=models.CASCADE)

您只需为模型中的每个价格提供一个现货:

class Prix(models.Model):
def __str__(self):
    return self.item.name

prix_x1 = models.IntegerField(null=True)
prix_x10 = models.IntegerField(null=True)
prix_x100 = models.IntegerField(null=True)

saved_at = models.DateTimeField()
item = models.ForeignKey(Item, on_delete=models.CASCADE)

为什么我没想到这个,这么简单啊哈!谢谢为什么我没想到这个,这么简单啊哈!谢谢