cor*_*ory 6 python django django-models
假设我有一个包含两个基本模型的食谱网站,“用户”和“食谱”
class User(models.Model):
username= models.CharField()
email = models.CharField()
class Recipe(models.Model):
name = models.CharField()
description = models.CharField()
Run Code Online (Sandbox Code Playgroud)
我想添加该功能,以便用户可以“收藏”食谱。
在这种情况下,我需要使用多对多关系。我的问题是,我如何决定将关系添加到哪个模型?
例如,每个用户都可以有一个“最喜欢的”食谱列表:
class User(models.Model):
favorites = models.ManyToManyField(Recipe)
Run Code Online (Sandbox Code Playgroud)
或者,每个食谱都可以有一个收藏该食谱的用户列表:
class Recipe(models.Model):
user_favorites = models.ManyToManyField(User)
Run Code Online (Sandbox Code Playgroud)
什么被认为是最佳实践?任何一种对查询性能更好?
正如评论中指出的那样,从数据库的角度来看,它没有区别。
但是我有两个论据对我来说确实很重要。
settings.INSTALLED_APPS以测试一切正常的步骤。这里重要的是不要循环包含(包含注释掉的应用程序会引发错误)。因此,我尝试将“最基本的”导入其他内容,而不是相反。这不是对您问题的简单回答,而是我考虑的两点。如果某种意义上说错了,也许一些更有经验的用户可以纠正我。
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |