我继承了一个遗留数据库并将其用于 Django 应用程序。
许多内部表具有一对一、一对多和多对多的关系。在直接的 SQL 应用程序中,数据查询将使用外键来维护引用完整性。在 Django 中,ManyToManyField
声明了一个方法。
是否有必要在 ForeignKey 上使用 ManyToMany?
我继承了一个遗留数据库并将其用于 Django 应用程序。
许多内部表具有一对一、一对多和多对多的关系。在直接的 SQL 应用程序中,数据查询将使用外键来维护引用完整性。在 Django 中,ManyToManyField
声明了一个方法。
是否有必要在 ForeignKey 上使用 ManyToMany?
ForeignKey
和ManyToMany
是两个不同的东西。你可能是说ForeignKey
v/sOneToOne
一个例子:
让我们采取一些任意Developer
模型
class Developer(models.Model):
user = models.OneToOneField(User) #ensure there is a one-to-one relationship between User and Developer model - One user object in django.contrib.auth can be associated with only one Developer and vice versa
category = models.ManyToMany(Category) #Developer can be part of many categories, and also one category can be associated with many developers
birth_address = models.ForeignKey(Address) #He can have only birth place. The address can be associated with many, so it is a `OneToMany` relationship
因此,ManyToMany
是多对多关系并且ForeignKey
是受限制ManyToMany
的(多对一关系)。
因此,您可以使用其中任何一个,但ForeignKey
如果您希望限制可以与相关模型关联的对象数量,则限制为一个好主意