hibernate是一個偉大的工具,嗯。真是用到上癮
數(shù)據(jù)庫和類的關聯(lián)設計和命名規(guī)范
常見命名:
id 物理索引,無任何邏輯意義,所有關聯(lián)全部通過id
name 名稱
desc 描述
cust 客戶
user 用戶
acct 帳戶
addr 地址
posi 位置
code 編碼
tele 電話
type 類型
chname 中文名稱 這里并非唯一標識,需要的時候使用(name和desc不能滿足的時候)
remark 備注
我們看到,實體類的設計中,我們牽涉如下類型的field:
1. id
2. 簡單field ,本表就記錄完整的資料
3. 對象 manytoone關聯(lián),典型的就是類型關聯(lián)。
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的設計
另外我們可以作一個類似數(shù)據(jù)字典的類字典設計,使用一個持久類來存放。
作用是1.待查,2.可以用于界面
class ClassDict
field /name /desc
Cust.Type,客戶類型,表示客戶的類型(如大客戶,代理商等)