关于对象颗粒大小的问题。

         
soloist
04-05-18 4 273

数据库的结构是这样,有employee和dept这样两个表。
table: employee
他有id,deptid,name这样一些字段(deptid为dept表的id)
table:dept
id,name。
我现在是多层开发,在web层想得到这样的数据形式
职员名 部门名
xxx xxxx

现在问题是,数据层有employee和dept两个类。而且employee类里只有deptid这样一个属性,我虽然可以往过数据层提供的提供部门id得到部门名这样的方法,但我觉得如果是得到一个职员的话还可以,如果是得到一个列表的话,那么这样数据库操作就太多了。
我只是举了一个简单的例子,实际上employee上还有别的一个类似于deptid的成员,大家帮我出个主意吧,谢谢!








banq
2004-05-21 09:11

当然在employee类中将dept作为属性,而不是deptid

windeye
2004-05-27 11:19

在数据库表设计中,毫无疑问是利用 id 来关联,如果采用CMP,那么这是个
很简单的1*n关系,用CMP很容易做,在某个Session Facade中 用类似dep.getEmployees 和 emp.getDepartment 来访问.
当然,如果只是需要一个上述的简单列表,完全可以在Session Facade中,直接利用DAO实现,如果用cmp,有点"高射炮打蚊子"的味道.

dev
2004-05-27 14:57

Employee类中还是以deptId作为属性,但是可以提供getDpet方法,让该方法进行懒装载。另外,应该对Dept进行Cache。

fiddle
2004-05-28 16:11

两数据表联查不就出来了么,把dept放到HashMap里面也好啊,能有几个dept?