【发布时间】:2021-07-31 08:51:00
【问题描述】:
我正在制作一个 Django 应用程序来处理多个购物清单。哪个应该有 ManytoMany 字段、Item 模型或 List 模型?这个模型是最优的吗?
一个列表可以有许多项目、0 个或多个子列表、0 个或多个关联商店。大多数这些关系看起来像多对多。一个项目可以在多个列表中,一个商店可以关联到多个列表。子列表只是将项目放在类别中,因此我还可以删除此模型并向项目添加类别属性。但是,最令人困惑的部分是:
项目有用于列表的 m2m 字段,但它是否也应该有用于子列表的 m2m 字段?列表不需要有子列表,因此该项目可以是列表的一部分或列表中的子列表(如文件夹/文件结构)
models.py:
class List(models.Model):
name = models.Charfield(max_length=125)
date = models.DateField(default=django.utils.timezone.now)
class Store(models.Model) :
name = models.CharField(max_length=128)
store = models.ManyToManyField(List)
class Item(models.Model):
item = models.CharField(max_length=128)
price = models.FloatField(default=0.0)
category = models.CharField(max_length=128, default=None)
checked = models.BooleanField(default=None)
store = models.ManyToManyField(List)
class SubList(models.Model):
name = models.Charfield(max_length=256)
parent_list = models.ForeignKey(List)
items = models.ManyToManyField(Item)
【问题讨论】:
标签: python django django-models database-design model