正确使用关联 class
Correct use of an association class
我刚开始使用 UML,我不确定我的图表是否正确。我想听听比我更有经验的人的一些建议。
我的问题的陈述是:
Students study courses and each student can take several courses "studies" each. Any course can have more than one student studying it.
Students, who are identified by a numerical code, have a name, date of birth and one or more nationalities.
A student who studies can receive scholarships.
A Student can recieve more than one scholarship per course. And an
individual scholarship can be given to more than one student. The
scholarships have a numeric code, which identifies them, a name, a
base amount and different conditions to be fulfilled at the time of
the assignment.
我的建议如下:
我想表达的是students、grants和student修读的courses,不知道应该用关联关系还是三元关系
任何人都可以确认我的提案 UML 图是否正确吗?
差不多。菱形(或菱形)元素本身就是一个关联 class,它关联所有连接的 class 元素。您想要的是 Student
和 Studies
之间的简单关联 class,如下所示:
Scholarship
表示学生在具体科目中通过的考试。关联 class 关系由链接到关联(具有 m-n 重数)的虚线表示。
唯一与学生、课程和助学金直接相关的说法是不清楚“[a s]学生每门课程可以获得不止一项助学金”。
它实际上只是说每个学生课程对可以有多个关联的资助。 (也许作业的作者认为 "per" 句子说的不止于此,但事实并非如此。)它没有说明学生 他们的助学金是否取决于他们的课程,以及是否那么如何。当给定一个三元组时,您的设计是最好的,您无法告诉任何其他三元组。 Takes(student,course) & Receives(student, course, grant) with th FK (foreign key) {student, course} from Receives to Takes 的设计是最好的,如果你知道一个学生和课程对,那么你知道它的补助金.如果独立于课程向学生提供助学金,那么使用 Takes(student,course) & Receives(student,grant) 的设计就足够了。
向你的导师澄清。
在你得到任何属性之前,我没有看到问题陈述中的名词与你的 classes 之间的相关性。我希望看到以下 classes:
Student
Course
Nationality
Scholarship
我还希望看到一个名为 CourseEnrollment
的关联 class,它在关联的末尾具有以下斜体属性:
Student
学习课程 [1..*] Course
Course
studyingStudent [1..*] Student
该关联 class 将与 Scholarship
有另一个关联,称为 ScholarshipAward
,在关联的末尾具有以下斜体属性:
CourseEnrollment
获得奖学金 [0..*] Scholarship
Scholarship
receivingCourseEnrollment [0..*] CourseEnrollment
通过这种安排,Scholarship
可以授予 Student
和 Course
的组合。
我刚开始使用 UML,我不确定我的图表是否正确。我想听听比我更有经验的人的一些建议。
我的问题的陈述是:
Students study courses and each student can take several courses "studies" each. Any course can have more than one student studying it.
Students, who are identified by a numerical code, have a name, date of birth and one or more nationalities. A student who studies can receive scholarships.
A Student can recieve more than one scholarship per course. And an individual scholarship can be given to more than one student. The scholarships have a numeric code, which identifies them, a name, a base amount and different conditions to be fulfilled at the time of the assignment.
我的建议如下:
我想表达的是students、grants和student修读的courses,不知道应该用关联关系还是三元关系
任何人都可以确认我的提案 UML 图是否正确吗?
差不多。菱形(或菱形)元素本身就是一个关联 class,它关联所有连接的 class 元素。您想要的是 Student
和 Studies
之间的简单关联 class,如下所示:
Scholarship
表示学生在具体科目中通过的考试。关联 class 关系由链接到关联(具有 m-n 重数)的虚线表示。
唯一与学生、课程和助学金直接相关的说法是不清楚“[a s]学生每门课程可以获得不止一项助学金”。
它实际上只是说每个学生课程对可以有多个关联的资助。 (也许作业的作者认为 "per" 句子说的不止于此,但事实并非如此。)它没有说明学生 他们的助学金是否取决于他们的课程,以及是否那么如何。当给定一个三元组时,您的设计是最好的,您无法告诉任何其他三元组。 Takes(student,course) & Receives(student, course, grant) with th FK (foreign key) {student, course} from Receives to Takes 的设计是最好的,如果你知道一个学生和课程对,那么你知道它的补助金.如果独立于课程向学生提供助学金,那么使用 Takes(student,course) & Receives(student,grant) 的设计就足够了。
向你的导师澄清。
在你得到任何属性之前,我没有看到问题陈述中的名词与你的 classes 之间的相关性。我希望看到以下 classes:
Student
Course
Nationality
Scholarship
我还希望看到一个名为 CourseEnrollment
的关联 class,它在关联的末尾具有以下斜体属性:
Student
学习课程 [1..*]Course
Course
studyingStudent [1..*]Student
该关联 class 将与 Scholarship
有另一个关联,称为 ScholarshipAward
,在关联的末尾具有以下斜体属性:
CourseEnrollment
获得奖学金 [0..*]Scholarship
Scholarship
receivingCourseEnrollment [0..*]CourseEnrollment
通过这种安排,Scholarship
可以授予 Student
和 Course
的组合。