谁应该建立这种关系?实体或数据映射器?

ope*_*rog 1 architecture orm design-patterns datamapper

有四个类:

StudentBase,CourseBaseStudentDataMapper,CourseDataMapper

Student对象可以与Course对象建立关系.一个学生可以有很多课程.许多学生可以参观一门课程.

在ER图中,学生实体具有称为"课程"的属性,但课程对他的学生一无所知.一门课程没有属于"学生"的属性作为回报.

哪些类应该执行关系的创建?

编辑:这是系统层!在业务逻辑层中,开发人员将StudentBase和CourseBase子类化为创建Student类和Course类.除了自己的业务逻辑代码之外,创建这些类的开发人员将看不到任何代码.

Alk*_*ini 5

都不是.

首先,ERD应该改变; 你所描述的是多对多的关系(一门课程可以有很多学生和一个学生很多课程).因此,学生不应该有课程属性,而应该有一个学生课程实体.

然后应该有一个StudentCourseDataMapper类来完成你所要求的(维护关系),StudentDataMapper和CourseDataMapper都应该知道并使用它.