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

问题描述 投票:0回答:1

我正在做一个项目,涉及到数据库中的一对多关系,一个简单的例子是一个老师教授很多课程,但一门课程可以只由一个老师教授,我的问题是什么是最好的方式来建模?

第一个对象是教师。

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

事情是课程班会是怎样的呢,方案一。

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

方案二:

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

这是我第一次在这里发帖,所以对可能出现的错误和英语不是我的母语提前表示抱歉.Thanks in advance.

oop object model one-to-many
1个回答
0
投票

从OOP的角度来看,方案2(有一个教师对象的引用)似乎更实用。

在通常的流程中,你会创建一个像.NET这样的课程对象。

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

你的方案1强调了这背后的关系数据库模式是什么样子的。这里有一个很好的阅读。https:/www.lifewire.comone-to-many-relationships-1019756#:~:text=A%20teacher%20can%20teach%20multiple,one%20teacher%20to%20multiple%20courses(课程).

上面的代码提交后,就可以启动两个插入查询的底层,在教师表中添加新的教师,在课程表中添加新的课程(以及教师ID)。

© www.soinside.com 2019 - 2024. All rights reserved.