【问题标题】:Tree Database Design in Django for Organisation FeatureDjango中用于组织功能的树形数据库设计
【发布时间】:2016-06-09 06:47:14
【问题描述】:

我想在 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)

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

【问题讨论】:

  • 当你有 parent_team 为 null=True 空白=True 有什么意义?这样,您将允许在没有 parent_team 和一个或多个 child_team 的情况下创建 ParentTeam 实例。我不认为你想要那个。

标签: django database django-models


【解决方案1】:

您可以将 Team 和 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')

我会用它来做的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 2011-01-19
    • 2011-07-23
    • 1970-01-01
    • 2011-10-27
    • 2014-11-27
    • 1970-01-01
    相关资源
    最近更新 更多