业务对象映射到表之间的关联问题!!
有个客户关系管理系统。
现在有几个业务对象,如投诉信息对象、报装信息、报修信息等等。
每个业务里可以有要求回访,并且一个业务可能对应要求几次回访。所以把回访信息单独进行一个对象维护。
class CallBackInfo(){
id int; //回访的标识ID
... //其他属性
}
class ComplainInfo(){
int id; //投诉的标识ID
Array[] callbacks; //回访信息
... 其他属性
}
class ******FaultInfo(){
id int; //报修的标识ID
Array[] callbacks; //回访信息
... 其他属性
}
class ******InstallInfo(){
id int; //报装的标识ID
Array[] callbacks; //回访信息
... 其他属性
}
在设计表时,如果将回访表与其他业务表进行关联??
1、如果在表callBackInfo里增加一个外键字段,指向业务ID,对应的问题是有三个业务ID
2、如果在1的基础之上增加个int type字段,用于指定哪个业务,这样设计有悖面向对象的思想,同时hibernate映射也有问题
3、不把回访信息单独做为一个对象,其属性分别做为各个业务对象的属性。这样有业务如果多次回访问时,就要有多个业务记录来对同一个业务问题进行记录。