我的应用中有两个实体:Class和Student,它们是多对多关系,如下所示:
我的问题是,在我的应用中,班级中有两种学生状态:通过和失败。我不知道如何为班级或学生建模。例如,我应该让另一个实体表达学生的身份吗?或者只是将一个status属性添加到Class实体?
答案 0 :(得分:2)
大概你不能在课堂上添加一个属性,因为如果有20个学生在同一个班级,他们之间只有一个属性?
您需要添加一个单独的实体,该实体与班级和学生具有一对一的关系,并且包含状态。在互惠中,学生和班级都会与身份有很多关系。
编辑:我想另一种解决方案是将状态直接插入现有关系之间。所以一个班级有一组状态,每个状态都有一个学生。
因此,从阶级到状态,关系将是一对多,从状态到学生,关系将是多对一。班级和学生之间没有明确的关系。
答案 1 :(得分:0)
我建议让第三个实体表达特定班级学生的状态。例如,一组“classStatuses”。由于您可能需要稍后存储其他信息,例如成绩,学分,辅助记录等。
最终方案将类似于
班级 - 学生,多对多关系。
学生 - ClassStatus 在一对多中。 (图片是学生正在学习的各种班级的数组)
通过这种方式,您可以搜索班级中的学生,搜索学生正在上课,查看班级状态。