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

 

一般在做数据库设计的时候,会把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。

 

这样做也是可以的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值