作者justin761002 (铭)
看板java
标题Re: [问题] 表达物件之间关系的资料如何储存?
时间Fri Nov 14 15:57:42 2014
假设:
20名老师:T01, T02, ... , T20
8间教室:C01, C02, ... , C08
1.
Teacher.java
int id;
String teacherName;
2.
ClassRoom.java
int id;
String roomName;
3.
TCRelt.java (Teacher_ClassRoom_Relation 的缩写)
int id;
int teacher_id;
int room_id;
然後写 method
public List<ClassRoom> findClassRoomByTeacher(Teacher teacher){};
public List<Teacher> findTeacherByClassRoom(ClassRoom){};
多对多的问题先简化成一对多,然後再求解,比较好思考。
不知道有没有回覆到你的问题。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.73.121
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1415951865.A.85D.html
method 回传值不一定要是 List<T>, 完全看你自己想要回传什麽。
我仅仅是举例用 List<T> 回传。
※ 编辑: justin761002 (60.250.73.121), 11/14/2014 16:06:32
1F:推 Kenqr: 请问TCRelt.java为什麽不直接reference到老师和班级呢? 11/15 21:56
也是可以,EX1、EX2 择一,但是非常不建议!
EX1
Teacher.java
int id;
String teacherName;
Array[] classRoom;
EX2
ClassRoom
int id;
String roomName;
Array[] teachers;
不建议的理由:
一、Array[] 的内容长度不一,查询的效率差。
二、以 EX1 为例:
假设教室C01因为某些原因消失了(也许被陨石打中之类的...)
除了要把 ClassRoom 的 C01 资料删除以外,
还要检查每一笔 Teacher.classRoom 的资料有没有 C01 ,
然後将之移除,再更新 Teacher 的资料,新增、删除、修改皆如此,
非常浪费时间。
※ 编辑: justin761002 (114.45.31.43), 11/16/2014 03:13:37