0

我继承了一个遗留数据库并将其用于 Django 应用程序。

许多内部表具有一对一、一对多和多对多的关系。在直接的 SQL 应用程序中,数据查询将使用外键来维护引用完整性。在 Django 中,ManyToManyField声明了一个方法。

是否有必要在 ForeignKey 上使用 ManyToMany?

4

1 回答 1

1

ForeignKeyManyToMany是两个不同的东西。你可能是说ForeignKeyv/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如果您希望限制可以与相关模型关联的对象数量,则限制为一个好主意

于 2013-06-15T01:05:19.083 回答