作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是Java新手,我将这样解释我的问题。
据我所知,在关系数据库中,如果两个表之间存在任何关系,我们都是通过外键来保留引用。如下。 Employee 和Company 表之间存在关系。 Employee 表通过引用companyId 作为外键来与Company 保持关系。这是关于关系数据库的。
在java编程中,我们可以为上述表Employee和Company创建对应的对象,如下所示。
class Company{
private int companyId;
private String companyName;
private String address;
//getters and setters
}
class Employee{
private int id;
private String name;
private int companyId;//this field use to refer the company table
//getters and setters
}
在 Employee 类中 companyId 用于引用 Company 类。
当关系表中有多个值时,例如,我们会得到两个表,例如Student和Subject。一个学生可以有多个学科,以及学科,可以属于多个学生。在这种情况下,我们需要根据第一范式使用组合键创建另一个名为 Student_Subject 的表。复合键(studentId,subjectId)可用于唯一引用属于特定学生的科目。
我的问题是这个表(Student_Subject)如何表示java应用程序,如上面的例子。我们是否创建一个与Student_Subject相对应的新类,如下
class StudentSubject{
private int subjectId;
private int studentId;
//getters and setters
}
最佳答案
一个明显的方法是将主题 ID 的集合放入您的 Student
类中:
class Student {
int id;
String name;
...
Set<Integer> subjectIds = new HashSet<>();
}
如果需要,您还可以在 Subject
类(class)中添加学生 ID 列表。
关于java - 如何在MySQL中创建与包含关系的组合键相对应的java对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59822362/
我是一名优秀的程序员,十分优秀!