首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确使用关联类

正确使用关联类
EN

Stack Overflow用户
提问于 2017-05-26 16:43:02
回答 3查看 382关注 0票数 2

我刚开始使用UML,我不确定我的图表是否正确。我想从比我更有经验的人那里得到一些建议。

关于我的问题的声明说:

学生学习课程,每个学生可以参加几门“学习”课程。任何课程都可以有一个以上的学生学习它。 由数字代码识别的学生有姓名、出生日期和一个或多个国籍。学习的学生可以获得奖学金。 每门课程学生可以获得一个以上的奖学金。个人奖学金可以发给一个以上的学生。奖学金有一个数字代码,用来识别它们、名称、基本数额和在分配时要满足的不同条件。

我的建议如下:

我想要的是代表学生,助学金和学生参加的课程,我不确定我应该使用联想关系还是三元关系。

有人能确认我的提议UML图是否正确吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-29 02:44:20

唯一与学生、课程和助学金直接相关的说法是,“学生每门课程可以获得多个助学金”,这是不明确的。

它实际上只说每个学生课程对可以有不止一个相关的助学金。(也许作业的作者认为“每句话说的更多”,但事实并非如此。)这并不是说学生的助学金是否取决于他们的课程,如果是的话,如何决定。你的设计是最好的,当给一个三胞胎,你不能告诉任何其他三胞胎。如果你知道一个学生和课程对,那么当你知道一个学生和课程对的时候,用FK (外键){学生,课程}和接收(学生,课程)的设计是最好的。如果助学金是独立于课程之外给予学生的,那么一项包含学生(学生,课程)和接受(学生,助学金)的设计就足够了。

跟你的教练说清楚。

票数 1
EN

Stack Overflow用户

发布于 2017-05-26 20:18:12

差不多了。菱形(或菱形)形状元素本身就是关联所有连接类的关联类。您希望它是StudentStudies之间的一个简单的关联类,如下所示:

Scholarship代表学生在特定学习中通过的考试。关联类关系由链接到关联(具有m多重性)的虚线表示。

票数 1
EN

Stack Overflow用户

发布于 2017-05-29 18:20:02

在讨论任何属性之前,我看不到问题语句中的名词与类之间的相关性。我希望看到以下课程:

  • Student
  • Course
  • Nationality
  • Scholarship

我还希望看到一个名为CourseEnrollment的关联类,它在关联的末尾具有以下斜体属性:

  • Student studiedCourse 1.* Course
  • Course studyingStudent 1.* Student

该关联类将有另一个与Scholarship的关联,称为ScholarshipAward,它在关联的末尾具有以下斜体属性:

  • CourseEnrollment awardedScholarship 0.* Scholarship
  • Scholarship receivingCourseEnrollment 0.* CourseEnrollment

通过这种安排,Scholarship可以授予StudentCourse的组合。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44206437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档