Django 模型:一个亲戚模型应该通过 ForeignKey 或 ManyToMany 来引用自己



我正在创建一个django应用程序,其中模型类Character有亲戚,实际上是其他Character模型。但是,我不确定应该如何设置它。现在我正在考虑使用这样的东西:

class Character(models.Model):
    name = models.CharField()
    sex = models.CharField()
    link = models.URLField()
    appearance = models.ManyToManyField(Episode, related_name="characters")
    relatives = models.ForeignKey('self', related_name="characters")

但是,我不确定这是否完全正确...也许我应该使用ManyToManyField?角色的一个例子可能是蒂姆。蒂姆有亲戚,鲍比,大卫和胡须。鲍比有亲戚大卫和蒂姆。大卫有亲戚鲍比和蒂姆。胡须有亲戚蒂姆。此外,如果一个类的字段指向同一个类,这会是一个问题吗?谢谢。

if a class's field points to the same class, will this be an issue?

这不是问题,大多数SQL数据库都支持这一点。阅读有关自联接的更多信息以了解这一点。

maybe I should use ManyToManyField?

是的,Manytomany是前进的道路,因为一个人可以有很多亲戚,他自己也可以是许多其他人的亲戚。

最新更新