【发布时间】:2019-10-20 20:56:51
【问题描述】:
我有一个场景,什么是最好的设计。
我有一个 Articles 表(例如披萨、饮料等)
class Articles(models.Model):
restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE , blank=True, null=True)
articlename = models.CharField(max_length=50, null=False, blank=False)
price = models.DecimalField(max_digits=10, decimal_places=2)
category = models.ForeignKey(Categories, on_delete=models.CASCADE)
ingredient = models.ManyToManyField(Ingredient) #done
articleoptionnames = models.ForeignKey(ArticlesOptionsName , on_delete=models.CASCADE)
第二张表是文章选项(如浇头(1 次、2 次或 3 次)、额外的酱汁等)
class ArticlesOptions(models.Model):
articleoptionrestaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE , blank=True, null=True)
optionname = models.ForeignKey(ArticlesOptionsName, on_delete=models.CASCADE, related_name="optionnames")
min = models.IntegerField()
max = models.IntegerField()
choice_price = models.DecimalField(max_digits=10, decimal_places=2)
choice = models.CharField(max_length=255)
def __str__(self):
return str(self.optionname)
还有三阶表
class orders(models.Model):
restaurant=models.ForeignKey(Restaurant, on_delete=models.CASCADE , blank=True, null=True)
articles=models.ForeignKey(Articles, on_delete=models.CASCADE , blank=True, null=True)
articleoptions=models.ManyToManyField(ArticlesOptions)
totalamount=models.DecimalField(max_digits=10, decimal_places=2)
def __str__(self):
return str(self.articles)
客户一次可以购买多件商品,然后每件商品都有多个商品选项(例如 4 种浇头和 4 种酱汁,用户可以选择多种浇头和多种酱汁)。那么如何以最佳方式制作订单表?
【问题讨论】:
标签: python django database django-models