django备件数据库模型

时间:2017-09-19 14:03:43

标签: python django database database-design

我正在试图弄清楚如何为备件应用建模数据库。

现在主要关注的是每个部分的数量。有些是碎片,米,Kg等。有些部分需要小数,有些则不应有小数。

这是我对基本模型的原始想法。

class Part(models.Model):
    name = models.CharField(max_length=550)

class PartNumber(models.Model):
    partnumber = models.CharField(max_length=50)
    part = models.ManyToManyField(Part, related_name='partnumber')

class Unit(models.Model):
    name = models.CharField(max_length=50)
    si_unit = models.CharField(max_length=10)

class Stock(models.Model):
    quantity = models.DecimalField(max_digits=10, decimal_places=2)
    unit = models.ManyToManyField(Unit, related_name='unit')
    part = models.ManyToManyField(Part, related_name='part')

问题是如何解决'股票'中的'数量'。有两个字段更好吗?这种感觉也不正确。

1 个答案:

答案 0 :(得分:0)

我认为没有一个正确的解决方案,但我会给出2美分。

我会写一个名为quantity的模型:

class Quantity(models.Model):
    quantity = models.DecimalField(max_digits=10, decimal_places=2)
    unit = models.CharField(max_length=50)

如果您希望能够在他们的si_unit中显示内容,我会考虑为此编写单独的模型独立代码,或者使用诸如python-measurement之类的库

如果您希望查询需要规范化查询,那么您可以将2个字段si_quantitysi_unit添加到数量,这将在每个Quantity.save()上更新