设计领域,数据表和对象的关系。

来源:互联网 发布:腾讯云备案域名 编辑:程序博客网 时间:2024/04/29 19:43

 

一般在做数据库设计的时候,会把common的信息存在一张基本的表里,而会把附加的信息存在另外一张表里。

例如,人员的基本信息---如姓名,性别,年龄放在一张基本表里。而教育信息,工作经验信息,放在另外的两张表里。并且会额外信息的表里建立一个基本信息的表的id。可能根据需要建立约束。

 

那么在对象领域(用UML的 class图表示),则可以这样。假如用hibernate的自动代码生成工具,假设里建立的外键关联的话,生成的class里会这样:

class Person{

//..other properties and setter & getter

private Collection educations;

private Collection workings;

//setter and getter

}

而在class Education{

private Person person;//setter & getter

}

class Working{

private Person person;//setter & getter

}

 

我们认为上面的这个是一种组合的关系,除此以外,还可以这样来看(有些持久层框架。比如说NCS的pfw),把他看成是继承的关系.换一个例子:

Case是罚金,有多种罚金,比如说针对Permit的Case叫做PermitCase,针对WMRS的WMRSCase,还有MRSACase。
Case表里只存放,罚金的基本信息,比如说罚款金额,罚款原因,罚金编号,那么在PermitCase表里会存放一个case的id,会存放Permit本身的信息,比如说许可证编号等。

那么可以让PermitCase extends  Case。

 

这样做也是可以的。