2017-09-19 83 views
1

我想弄清楚如何爲備件應用程序建模數據庫。django備件數據庫的模型

現在主要關心的是每個零件的數量。有些是件,米,公斤等。一些部分需要小數,一些不應該有小數。

這是我最基本的模型。

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') 

問題是我應該如何解決「庫存」中的「數量」問題。有兩個領域更好嗎?它也沒有那種感覺。

+0

你可能守各Quantity.save()更新不管怎樣,ld都會使用複式簿記。這將有助於單位,揀選策略(FIFO/LIFO)和許多其他單一記錄更難的事情。控制庫存並不像看起來那麼容易。 –

回答

0

我不認爲有一個正確的解決方案,但我會給我2美分。

我會寫一個模型稱爲數量:

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的數量,這將獲得對