【问题标题】:UML association class and OOP languagesUML 关联类和 OOP 语言
【发布时间】:2020-03-19 17:38:58
【问题描述】:

我正在使用 Django 构建一个 Web 应用程序, 我用 UML2 做了设计应用程序。 我读到面向对象的编程语言中不存在关联类的概念,这是真的吗? 谢谢。

类图

【问题讨论】:

    标签: django uml class-diagram model-associations multiplicity


    【解决方案1】:

    没有。您可以按如下方式实现该模型关系设计:

    class Society(models.Model):
        name = models.CharField(max_length=100)
    
    class User(models.Model):
        name = models.CharField(max_length=100)
        societies = models.ManyToManyField(Society, through='Employment', related_name='users', blank=True)
    
    class Employment(models.Model):
        class Meta:
            unique_together = [('user', 'society')]
        user = models.ForeignKey(User, on_delete=models.CASCADE)
        society = models.ForeignKey(Society, on_delete=models.CASCADE)
        salary = models.IntegerField()
    

    【讨论】:

    • 您能否向我解释一下用户类中“societies = models.ManyToManyField”的需求。我们不只需要将用户和社会添加到就业类吗?谢谢
    • 你也可以这样做。但是,您的图表显示了两者之间的明确关系,因此我认为您希望能够执行user.societies.all()。以下是解释 ManyToManyField 的文档 - docs.djangoproject.com/en/3.0/ref/models/fields/…
    • 谢谢你的澄清,真的帮了我:)
    猜你喜欢
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 2011-12-04
    • 2018-08-24
    • 1970-01-01
    • 2011-06-12
    相关资源
    最近更新 更多