让我们说我有一个配方网站,有两个基本模型,'用户'和'食谱'
class User(models.Model):
username= models.CharField()
email = models.CharField()
class Recipe(models.Model):
name = models.CharField()
description = models.CharField()
我想添加功能,以便用户可以“喜欢”食谱。
在这种情况下,我需要使用多对多关系。我的问题是,我如何决定将关系添加到哪个模型?
例如,每个用户都可以拥有“最喜欢的”食谱列表:
class User(models.Model):
favorites = models.ManyToManyField(Recipe)
或者,每个食谱都可以有一个收藏食谱的用户列表:
class Recipe(models.Model):
user_favorites = models.ManyToManyField(User)
什么是最佳做法?是否有更好的查询性能?
答案 0 :(得分:2)
正如评论中所指出的那样,从数据库的角度来看没有任何区别。
但我有两个论点,它对我来说很重要。
settings.INSTALLED_APPS
以测试步骤,以确保一切正常。这里重要的是不要有循环包含(包括注释掉的应用程序会引发错误)。所以我尝试将“最基本的”导入到其他人中,而不是相反。 这不是你问题的简单答案,而是我考虑的两点。也许一些经验丰富的用户可以在某种意义上纠正我。