繁体   English   中英

使用休眠/JPA 映射实体

[英]Mapping entities with hibernate/JPA

这是我的第一篇文章,我是一名初学者,正在尝试为我工作的学校开发一个 Science Fair 管理系统,但我在实体映射方面遇到了一些问题。

这个想法是科学博览会的管理员创建一个等级系统来申请具有一组成绩的科学博览会版本。 创建新的 ScienceFair 版本时,用户选择他们将使用的 GradeSystem。 然后,用户将注册所有将参加该 Science Fair 版本的学生。 系统必须根据之前为该科学博览会版本选择的 GradeSystem 注册该版本中的所有学生成绩。

我在想什么并需要一些线索(对不起,如果我不清楚):

Grade应该是一个实体吗? 还是嵌入式类? 我正在考虑创建一个实体 GradeSystem,它将具有: id, Set<Grade> Grades 一个与 GradeSystem 实体具有多对一关系的实体 ScienceFair(因为一个 Science Fair 版本只能有一个等级系统,但一个许多科学博览会版本都可以使用等级系统)。 具有 id、name、class 以及与 ScienceFair 的多对多关系的实体 Student。 为此,使用 FK stud_id、FK science_fair_id 和List<Grade>成绩创建一个中间表。 但是我怎么能把这个等级列表与班级等级联系起来,因为等级等级已经与等级系统相关。

我很困惑,当然在这里误解了一些关系数据库概念。 任何帮助将不胜感激。

您可以将等级建模为实体或枚举,具体取决于等级必须有多灵活(始终为 1-5,始终为 AF,由客户配置?)。

学生与成绩的关系应该是一个像AchievedGrade这样的实体,其中包含他/她的成绩和相关的ScienceFair,并且是对学生的ManyToOne。

ScienceFair 和 Grade 本身是配置数据,AchievedGrade 是“运行数据”。

我强烈建议不要允许可配置的成绩,至少在 ScienceFair 开始之后,因为这会打开一个关于历史条目的蠕虫罐。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM