泥巴麒麟的BLOG

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

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            195 Posts :: 2 Stories :: 80 Comments :: 0 Trackbacks
          hibernate是一個(gè)偉大的工具,嗯。真是用到上癮

          數(shù)據(jù)庫(kù)和類的關(guān)聯(lián)設(shè)計(jì)和命名規(guī)范
          常見(jiàn)命名:

          id   物理索引,無(wú)任何邏輯意義,所有關(guān)聯(lián)全部通過(guò)id

          name  名稱
          desc  描述
          cust  客戶
          user  用戶
          acct  帳戶
          addr  地址
          posi  位置
          code  編碼
          tele  電話
          type  類型

          chname 中文名稱  這里并非唯一標(biāo)識(shí),需要的時(shí)候使用(name和desc不能滿足的時(shí)候)
          remark 備注

          我們看到,實(shí)體類的設(shè)計(jì)中,我們牽涉如下類型的field:
          1. id
          2. 簡(jiǎn)單field ,本表就記錄完整的資料
          3. 對(duì)象   manytoone關(guān)聯(lián),典型的就是類型關(guān)聯(lián)。
          4. 對(duì)象   compement,應(yīng)該抽象出類,但并非manytoone,典型的如地址(路,街,號(hào))
          5. 集合對(duì)象 manytomany,典型的如學(xué)生和老師的關(guān)系。

          特別的我們看到type類型的設(shè)計(jì),這是典型的多對(duì)一
          所以在設(shè)計(jì)應(yīng)該如下:
          class Customer{
                  CustType type
                  ...
          }
          CustType extends Type{
                  ...
          }
          class Type{
                  String code;
                  String name;
                  String desc;
          }
          在hibernate的hbm中,我們使用manytoone。
          而在整體設(shè)計(jì)中可以考慮把所有的Type做成繼承結(jié)構(gòu),而用一張表來(lái)存放所有的type
          例:
           code/name/desc/type
           101 ,new,新裝,CustType
           102,del,拆 ,CustType
           101,new,新裝 ,UserType

          相對(duì)的,如果并非典型的manytoone,如地址
          可以使用compement的設(shè)計(jì)

          另外我們可以作一個(gè)類似數(shù)據(jù)字典的類字典設(shè)計(jì),使用一個(gè)持久類來(lái)存放。
          作用是1.待查,2.可以用于界面
          class ClassDict

          field      /name     /desc
          Cust.Type,客戶類型,表示客戶的類型(如大客戶,代理商等)
          posted on 2005-06-08 12:58 泥巴麒麟 閱讀(552) 評(píng)論(5)  編輯  收藏

          Feedback

          # re: 論hibernate解放程序員 2005-10-21 09:37 zyh
          呵呵,blog寫(xiě)的不錯(cuò)啊,
          請(qǐng)問(wèn)hibernate對(duì)于多表關(guān)聯(lián)能影射嗎?   回復(fù)  更多評(píng)論
            

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

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

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

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 东至县| 万山特区| 兴山县| 体育| 始兴县| 谷城县| 浪卡子县| 连江县| 佛山市| 彰武县| 湘潭市| 达尔| 松桃| 奇台县| 纳雍县| 武冈市| 农安县| 民丰县| 开平市| 滁州市| 临漳县| 腾冲县| 兰西县| 南汇区| 青海省| 赤水市| 体育| 罗定市| 专栏| 隆回县| 三都| 林甸县| 都安| 门头沟区| 旺苍县| 黄梅县| 清远市| 东台市| 马边| 台南市| 威信县|