|
復(fù)習(xí)一對(duì)多的關(guān)系 ,(不講多對(duì)一的關(guān)系) 老師 課程 一個(gè)老師可以上多個(gè)課程,一個(gè)課程,只能由一個(gè)老師來(lái)上 對(duì)象設(shè)計(jì): 站在老師的角度 Set courses - getCourses() 站在課程的角度 teacher getTeacher() 數(shù)據(jù)庫(kù)的設(shè)計(jì): 在多方增加一個(gè)外鍵 課程id 課程名稱 ... 教師id 1 c語(yǔ)言 1 2 java 2 錯(cuò)誤的設(shè)計(jì) 教師id 教師名稱 .... 課程id 1 張老師 1,2 (不符合數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范) 另外,有mappedBy的對(duì)象方,其實(shí)體表中不會(huì)生成外鍵 ========================================================= 多對(duì)多關(guān)系 學(xué)生 和 課程 一個(gè)學(xué)生可以選擇多門課程,一門課程,也可以被多個(gè)學(xué)生選擇 學(xué)生 Student(id,name,sex,pwd,phone,grade,photo) 課程 Course(id,name,type,hours) 數(shù)據(jù)庫(kù)的設(shè)計(jì): 中間表 student-course(sid,cid) 數(shù)據(jù)庫(kù)表關(guān)系 sid cid 1 1 1 2 2 1 2 2 對(duì)象關(guān)系: 一個(gè)學(xué)生可以選擇多門課程,一門課程可以被多個(gè)學(xué)生選擇 1.站在學(xué)生的角度,有一個(gè)屬性叫做courses 可以通過(guò)getCourses(),得到自己選擇的所有課程 2.站在課程的角度,有一個(gè)屬性叫做students 可以通過(guò)getStudents,得到選擇這門課程的所有學(xué)生 選擇一方來(lái)維護(hù)關(guān)聯(lián)關(guān)系,叫做主表 維護(hù)關(guān)聯(lián)關(guān)系的一方 通過(guò)學(xué)生來(lái)添加課程 student.setCourses(....) 或者 通過(guò)課程來(lái)添加學(xué)生 course.setStudents(...) http://blog.csdn.net/oyzl68/article/details/8176009 @ManyToMany @JoinTable( name="student_course", joinColumns={@JoinColumn(name="sid")}, inverseJoinColumns={@JoinColumn(name="cid")} ) @JoinTable( name="student_course", joinColumns=@JoinColumn(name="sid"), inverseJoinColumns=@JoinColumn(name="cid") ) |
|
|