论hibernate解放程序员

论hibernate解放程序员
hibernate是一个伟大的工具,嗯。真是用到上瘾

数据库和类的关联设计和命名规范
常见命名:

id   物理索引,无任何逻辑意义,所有关联全部通过id

name  名称
desc  描述
cust  客户
user  用户
acct  帐户
addr  地址
posi  位置
code  编码
tele  电话
type  类型

chname 中文名称  这里并非唯一标识,需要的时候使用(name和desc不能满足的时候)
remark 备注

我们看到,实体类的设计中,我们牵涉如下类型的field:
1. id
2. 简单field ,本表就记录完整的资料
3. 对象   manytoone关联,典型的就是类型关联。
4. 对象   compement,应该抽象出类,但并非manytoone,典型的如地址(路,街,号)
5. 集合对象 manytomany,典型的如学生和老师的关系。

特别的我们看到type类型的设计,这是典型的多对一
所以在设计应该如下:
class Customer{
        CustType type
        ...
}
CustType extends Type{
        ...
}
class Type{
        String code;
        String name;
        String desc;
}
在hibernate的hbm中,我们使用manytoone。
而在整体设计中可以考虑把所有的Type做成继承结构,而用一张表来存放所有的type
例:
 code/name/desc/type
 101 ,new,新装,CustType
 102,del,拆 ,CustType
 101,new,新装 ,UserType

相对的,如果并非典型的manytoone,如地址
可以使用compement的设计

另外我们可以作一个类似数据字典的类字典设计,使用一个持久类来存放。
作用是1.待查,2.可以用于界面
class ClassDict

field      /name     /desc
Cust.Type,客户类型,表示客户的类型(如大客户,代理商等)

你可能感兴趣的:(论hibernate解放程序员)