gpt4 book ai didi

Java数据库: bind multiple instances of a class to one instance of another class

转载 作者:行者123 更新时间:2023-12-01 13:41:27 24 4
gpt4 key购买 nike

我真的不知道如何描述这个问题(正如你通过狡猾的标题所说的那样),所以这里是问题的完整描述。我有两个类(class),老师和类(class)。每个老师可以教几个类(class),每个类(class)有多名老师。在 Java 中,我们将其映射如下:

public class Class {
@ManyToMany(mappedBy = "classes")
private List<Teacher> teachers = new ArrayList<>();
}

我们有一个父类(super class) User 和两个子类 Teacher 和 Student。这些类继承自 User 父类(super class)。因此,在我们的数据库中,我们有一个名为“用户”的表,它将所有用户存储为教师或学生。现在,学生只能在一个类(class),因此他们只能在数据库中存储一个 ClassID。但正如我之前所说,老师可以有几节课。所以重点是:我如何才能将教师的所有类(class)存储在数据库中?我看到 Java 创建了一个额外的表,称为 User_Class,它可能是用来存储教师拥有的所有不同的类(class),反之亦然。问题是我找不到任何有关如何使用它的文档。

有人可以帮我一下吗?

提前致谢。

最佳答案

在尝试通过代码解决这个问题之前,我认为您需要从数据库的角度来理解它。

您正在尝试建立多对多关系。这种关系是通过将其拆分为两个一对多关系来构建的。

因此,如果您有两个实体(即类(class)老师...我避免使用“类”以防止混淆)和一个类(class) 可以有多个 Teacher,一个 Teacher 可以有多个 Course,然后是一种创建关系的方法(在数据库中)会是这样的:

表格类(class)

courseId     (PK)
courseName

教师

teacherId    (PK)
teacherName

表格Courses_Teachers

courseId    (FK, PK)
teacherId (FK, PK)

(PK代表“主键”,FK代表“外键”)

希望这个小介绍可以帮助您直观地了解解决问题的方法。

关于Java数据库: bind multiple instances of a class to one instance of another class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20733200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com