Django中用于组织特征的树数据库设计

时间:2016-06-09 06:47:14

标签: django database django-models

我想在django 1.8中实现组织功能。   - 组织有多个属于它的团队。   - 任何团队都可以在其下/下拥有多个团队。 我从这个核心开始,但我不知道这是设计模型结构的好方法。

class Organisation(models.Model):
    name = models.CharField(max_length=64)
    description = models.TextField(max_length=1024)
    logo = models.ImageField()


class Team(models.Model):
    organisation = models.ForeignKey(Organisation)
    name = models.CharField(max_length=64)


class ParentTeam(models.Model)
    parent_team = models.OneToOneField(Team, null=True, blank=True)
    child_team  = models.ManyToManyField(Team)

我做得对还是应该采用其他方式设计? 谢谢,

1 个答案:

答案 0 :(得分:0)

您可以将团队和ParentTeam模型分成一个

class Team(models.Model):
    organisation = models.ForeignKey(Organisation)
    name = models.CharField(max_length=64)
    child_teams = models.ManyToManyField('self', blank=True, related_name='children')

我会用它做的事情。