如何从分层数据库结构中获取具体类

时间:2016-09-07 14:18:14

标签: java mysql database database-design

这是我的数据库结构:

http://github.com/voku/anti-xss

我有一个AbstractUser表,用于我的角色表的常见属性:NurseDoctor或将来可能会添加其他角色。

我还得到一个Event表,它使用abstract_user_id作为fk。

我可以很容易地获得AbstractUser的关联Event,问题是如何才能获得AbstractUser的具体类,我能想到的唯一方法就是去通过角色表(护士,医生等),并在这些表中使用fk(abstract_user_id)来检查AbstractUser.id是否存在。

有没有更好的方法呢?

我要求更好的方法因为似乎每当我需要AbstractUser的具体类时我必须这样做,并且我不能把它放到一个方法中,因为返回类型没有确定。在任何地方重复这一点让我感觉到代码味道:

AbstractUser absUser = event.getAbsUser();

if(existInNurseTable(absUser)){
   Nurse n = getNurseByAbsUser(absUser);
   ...
   //business logic
}else if(...){
   ...
}else{
   ...
}

0 个答案:

没有答案