泥巴麒麟的BLOG

          shenAwesome@hotmail.com 縱不能,將醉做生涯,休拘束

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            195 Posts :: 2 Stories :: 80 Comments :: 0 Trackbacks
          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做成繼承結(jié)構(gòu),而用一張表來存放所有的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,客戶類型,表示客戶的類型(如大客戶,代理商等)
          posted on 2005-06-08 12:58 泥巴麒麟 閱讀(552) 評論(5)  編輯  收藏

          Feedback

          # re: 論hibernate解放程序員 2005-10-21 09:37 zyh
          呵呵,blog寫的不錯啊,
          請問hibernate對于多表關聯(lián)能影射嗎?   回復  更多評論
            

          # re: 論hibernate解放程序員 2005-10-21 18:22 泥巴麒麟
          多表關聯(lián)指什么?我遇到的一般的關聯(lián)都是可以的,包括類層疊幾級的。不過說實在的,hibernate可能主要還是用于關聯(lián)比較簡單的比較有把握,慢也慢不到哪里去。如果關聯(lián)復雜數(shù)據(jù)量大,還是要想當功底才有自信阿。  回復  更多評論
            

          # re: 論hibernate解放程序員 2005-10-24 10:01 zyh
          呵呵, 我是剛剛學習hibernate,很多問題需要請教。
          你一般是從類生成影射文件,再生成數(shù)據(jù)庫表這個過程吧?
          我看有介紹是這個的逆向過程,不知道這兩種有何本質(zhì)區(qū)別呢。誰熟誰劣?
          謝謝解答我的問題,  回復  更多評論
            

          # re: 論hibernate解放程序員 2005-10-24 15:08 kaka
          理論上說,應該從類生成表。但實際代碼中,多數(shù)公司還是以表結(jié)構(gòu)為核心。特別是如果別人已經(jīng)建表的情況下,你從表生成,就比較省事。
          嚴格的說,數(shù)據(jù)表只是持久化對象的實現(xiàn),所以第一種辦法,更加的面向?qū)ο蟆?
            回復  更多評論
            

          # re: 論hibernate解放程序員 2006-01-20 17:52 aspirin
          這兩種的本質(zhì)區(qū)別在于你是否真正的在用面向?qū)ο蟮姆绞皆谒伎肌?nbsp; 回復  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 随州市| 若羌县| 嘉荫县| 淮阳县| 香港 | 丽水市| 合肥市| 保靖县| 卫辉市| 增城市| 武冈市| 章丘市| 武夷山市| 南皮县| 拜城县| 赫章县| 梧州市| 乌兰察布市| 灵璧县| 宜兰县| 永顺县| 汾阳市| 连平县| 运城市| 江津市| 高阳县| 安溪县| 旬邑县| 巴林右旗| 林州市| 咸阳市| 富锦市| 永泰县| 韶山市| 自治县| 札达县| 灌阳县| 襄樊市| 宣恩县| 安义县| 固安县|