Hibernate中对象关系设计方案请教,(实例)
主要是要设计一个软件中心,下列表都已经存在,目前打算使用HIBERNATE来重新编写。
1、Email_info 电子邮件,主关键字为email,如果是个人的有person_id (个人之允许有一个邮箱) , 还含有临时邮箱和单位邮箱
2、Person_base 存放个人的基础信息 ,主关键字为person_id,所在部门使用dept_id来表示。
3、Auth主关键字为email,存放个人帐号的信息,主要是email和口令。
4、Perm 存放个人帐号的权限,一个帐号可以在多个应用中拥有不用的权限,主关键字是email和应用的ID
5、App 存放应用的信息,主关键字是app_id,包含应用的名称以及该应用所包含的所有权限。(因为公司统一认证,包含了很多不同的应用)
6、Deptcode 部门编码表,主要是dept_id和部门名称的对照表。
7、Soft 软件的信息,主关键字为soft_id , 由于软件使用两级分类,因此有soft_sort1_id 和 soft_sort2_id 两个分类的ID,软件信息中由增加人的信息,使用person_id来表示。
8、Soft_sort1 主关键字为soft_sort1_id , 软件主分类的ID 和 名字的对照表
9、Soft_sort2主关键字为soft_sort2_id ,软件二级分类的ID和名字的对照表,包含了soft_sort1_id 信息。
业务流程 :
1、增加科室代码库
2、增加人员信息
3、申请电子邮箱,使用邮箱名创建用户帐号,帐号名和邮箱名相同
4、给帐号分配权限。
5、用户登陆后,添加软件。(需要指定软件的两级分类)
逻辑关系
dept 部门和 person_base人员是一对多关系
person_base 和 email 应该是一对一关系,但是email 中的每一个并不和person_base一一对应,因为含有单位邮箱。
Email和 AUTH应该是一对一关系,但是单位邮箱不能建立帐号。
实现的功能:
在查询软件时,显示软件的信息和添加人的信息,(包含人员姓名和部门名称)
上述表都已经存在,目前打算使用HIBERNATE来重新编写,对如何将表映射为对象的设计不太熟悉,是否使用一一对应的方式,将主要的表映射为对象即有部门,人员,认证,权限,应用,软件等对象,不知是否还有别的设计方案,另对代码库该如何处理。请高手指教。