浏览 6931 次
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2004-01-31
例子:学生选课,学生和课程是many-to-many的关系 有三个表 create table Courses(CourseId varchar(32) not null,name varchar(32),constraint pk_Courses primary key (CourseId)); create table Students (StudentId varchar(32) not null,name varchar(32),ClassesId varchar(32) not null,constraint pk_Students primary key (StudentId),constraint fk_Students foreign key (ClassesId) references Classes(ClassesId)); create table Student_Course_Link(CourseId varchar(32) not null,StudentId varchar(32) not null,constraint pk_Student_Course_Link primary key (CourseId,StudentId),constraint fk_Student_Course_Link_1 foreign key (CourseId) references Courses(CourseId),constraint fk_Student_Course_Link_2 foreign key (StudentId) references Students(StudentId)) ; 在学生选课的时候课程信息是从数据库中load()出来的,那么如果要删除一个学生的信息时候实体类型会只删除学生的信息和与之关联的关系表里的连接,不会删除课程实体,而值类型是把所有与学生相关联的实体都要删除 我理解的不知道对不??? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-02-01
值类型和实体类型主要的意义在于如何理解持久化操作。
学生选课的用例中,学生和课程是多对多的关系,在学生对象中有一个属性表示课程的集合,是值类型(Collection).所以在删除学生对象时此关系是要删除的。 如果学生对象中有一个属性表示班级对象,因为班级对象是一个实体类型,所以在删除学生对象时是不会删除班级对象的。 |
|
返回顶楼 | |
发表时间:2004-02-02
例如,我要删除一个学生的信息的时候,需要删除,class,course的信息
如果是值类型的话是删除所有与学生关联的信息 如果是实体类型的话是后台删除他们的连接,也就是删除student_courses_link表中的数据.但不删除class和course表中的数据 这样理解呢 |
|
返回顶楼 | |