业务对象映射到表之间的关联问题!!


有个客户关系管理系统。
现在有几个业务对象,如投诉信息对象、报装信息、报修信息等等。
每个业务里可以有要求回访,并且一个业务可能对应要求几次回访。所以把回访信息单独进行一个对象维护。

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、不把回访信息单独做为一个对象,其属性分别做为各个业务对象的属性。这样有业务如果多次回访问时,就要有多个业务记录来对同一个业务问题进行记录。

投诉信息、报装信息、报修信息所对应的回访对象是一样的吗?如果不一样那么放在一张表中合适吗?

回复对象的类型是一样的,如有属性:回访时间,客户满意度,回访受理人.

可以把回访记录放在一张表中,用类型字段标志对应哪一类业务,在加一个业务id字段指向业务记录

>可以把回访记录放在一张表中,用类型字段标志对应哪一类业务,在加一个业务id字段指向业务记录

业务ID字段指向业务记录,不能做为外键吧,因为对应几个业务表呢,呵呵
[该贴被ironpearl于2007年07月23日 17:53修改过]

不用外键