我正在使用新功能擴展現有的 django 應用程序。問題基本上如下。對不起,如果已經問過這個問題的等價物,我不確定要搜索什么才能找到解決方案。我有一個“商店”模型,其中包含與“部門”模型的多對多關系,并非所有商店都擁有相同的部門。我需要跟蹤每個商店的每日部門數量,并且我需要一個用戶表單來輸入所有這些信息。我不知道是應該創建一個包含所有可能部門的模型,還是應該創建一個具有一個部門和權重的模型,然后每天創建與部門一樣多的對象。此應用程序的擴展能力將非常重要,我想從正確的角度開始。代碼如下。門店部門class Department(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=255, unique = True) short_name = models.CharField(max_length=32) description = models.CharField(max_length=255) def __str__(self): return self.name;體積數據選項(有問題的模型)選項 1,一個模型,一應俱全:class VolumeData(models.Model): id = models.AutoField(primary_key=True) store = models.ForeignKey(stores.models.Store, on_delete=models.DO_NOTHING) date = models.DateField(auto_now_add=True,null=False,blank=False) produce = models.DecimalField(decimal_places=2,Null=True) dairy = models.DecimalField(decimal_places=2,Null=True) deli = models.DecimalField(decimal_places=2,Null=True) meat = models.DecimalField(decimal_places=2,Null=True) seafood = models.DecimalField(decimal_places=2,Null=True) coffee = models.DecimalField(decimal_places=2,Null=True) frozen = models.DecimalField(decimal_places=2,Null=True)選項 2,一種模型,但我需要更多對象。class VolumeData(models.Model): id = models.AutoField(primary_key=True) store = models.ForeignKey(stores.models.Store, on_delete=models.DO_NOTHING) date = models.DateField(auto_now_add=True,null=False,blank=False) department = ForeignKey(Departmnet, blank=False)我覺得選項 2 會更靈活,但我擔心它會創建的額外對象的數量。然而,選項 1 會有很多我不需要的空值,我不確定這是否更糟,它也在部門中烘烤,這可能很復雜?部門列表不會非常動態,我希望每年更新的次數少于一次,并且最終用戶不太可能需要修改該信息。
1 回答

慕沐林林
TA貢獻2016條經驗 獲得超9個贊
我也喜歡選項 2,但我認為您需要更進一步,為每個部門銷售的不同項目創建一個類:
class Items(models.Model):
id = models.AutoField(primary_key=True)
product_SKU = models.CharField(max_length=15) # set max_length as needed
product_name = models.CharField(max_length=50) # set max_length as needed
number_sold = models.DecimalField(decimal_places=2,Null=True)
有了這種增加的信息深度,您將能夠整合更深層次的報告、人工智能預測、機器學習等。只需我的兩分錢。
添加回答
舉報
0/150
提交
取消