泥巴麒麟的BLOG

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            195 Posts :: 2 Stories :: 80 Comments :: 0 Trackbacks
          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,客戶類型,表示客戶的類型(如大客戶,代理商等)
          posted on 2005-06-08 12:58 泥巴麒麟 閱讀(552) 評論(5)  編輯  收藏

          Feedback

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

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

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

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

          # re: 論hibernate解放程序員 2006-01-20 17:52 aspirin
          這兩種的本質區別在于你是否真正的在用面向對象的方式在思考。  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 孟村| 竹山县| 治多县| 察哈| 绥宁县| 从江县| 九寨沟县| 福建省| 庆阳市| 玉龙| 伊吾县| 岐山县| 建始县| 青川县| 大洼县| 和田市| 宝应县| 九龙城区| 壤塘县| 鄂托克前旗| 精河县| 舞钢市| 德令哈市| 宜丰县| 资阳市| 且末县| 秦皇岛市| 那坡县| 武功县| 岐山县| 乌兰县| 清镇市| 册亨县| 雅江县| 兴义市| 江北区| 晋江市| 石柱| 南部县| 贡嘎县| 阆中市|