Django模型:亲戚模型应该通过ForeignKey或ManyToMany引用自己吗?

时间:2014-12-05 02:58:44

标签: python django model-view-controller model

我正在创建一个django应用程序,其中一个模型类,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?一个角色的例子可能是蒂姆。蒂姆有亲戚,鲍比,大卫和威斯克斯。鲍比有亲戚大卫和蒂姆。大卫有亲戚鲍比和蒂姆。胡须有亲戚蒂姆。此外,如果一个类的字段指向同一个类,这是一个问题吗?感谢。

1 个答案:

答案 0 :(得分:1)

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

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

maybe I should use ManyToManyField?
是的,很多人都是前进的方式,因为一个人可以拥有许多亲戚。他本人可以成为许多其他人的亲戚。