在OOP中建立一对多关系的最佳方法

时间:2020-06-16 01:00:25

标签: oop object model one-to-many

我正在从事一个涉及数据库中一对多关系的项目。 一个简单的例子就是一位老师教授许多课程,但是一门课程只能由一位老师教授。 我的问题是对此建模的最佳方法是什么?

第一个对象是教师:

class Teacher{
    public int id;
    public String name;
    public String lastName;
    ...
}

问题是课程的外观如何? 选项1:

class Course{
    public int idCourse;
    public String courseDescription;
    **public int teacherId;**
    ...
}

选项2:

class Course{
    public int idCourse;
    public String courseDescription;
    **public Teacher teacher;**
    ...
}

1 个答案:

答案 0 :(得分:0)

从OOP的角度来看,选项2(具有对教师对象的引用)似乎更实用。

在通常的流程中,您将创建一个课程对象,如:

Teacher t = new Teacher('first_name', 'last_name');
Course c = new Course('Math course');
c.setTeacher(t);

您的选项1突出显示了其背后的关系数据库架构。这是一个很好的阅读: https://www.lifewire.com/one-to-many-relationships-1019756#:~:text=A%20teacher%20can%20teach%20multiple,one%20teacher%20to%20multiple%20courses

一旦提交了上面的代码,它可能会触发两个基础插入查询,以在教师表中添加新教师并在课程表中添加新课程(以及教师ID)。