泥巴麒麟的BLOG

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

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

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

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

          name  名稱(chēng)
          desc  描述
          cust  客戶(hù)
          user  用戶(hù)
          acct  帳戶(hù)
          addr  地址
          posi  位置
          code  編碼
          tele  電話
          type  類(lèi)型

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

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

          特別的我們看到type類(lèi)型的設(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è)類(lèi)似數(shù)據(jù)字典的類(lèi)字典設(shè)計(jì),使用一個(gè)持久類(lèi)來(lái)存放。
          作用是1.待查,2.可以用于界面
          class ClassDict

          field      /name     /desc
          Cust.Type,客戶(hù)類(lèi)型,表示客戶(hù)的類(lèi)型(如大客戶(hù),代理商等)
          posted on 2005-06-08 12:58 泥巴麒麟 閱讀(553) 評(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)都是可以的,包括類(lèi)層疊幾級(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)教。
          你一般是從類(lèi)生成影射文件,再生成數(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)該從類(lèi)生成表。但實(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è)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 山东| 偃师市| 越西县| 长治县| 呈贡县| 新建县| 荣成市| 精河县| 乌拉特中旗| 麻阳| 新源县| 平罗县| 保山市| 安远县| 镇江市| 文化| 宝鸡市| 通江县| 阳信县| 柳林县| 六盘水市| 郸城县| 阿巴嘎旗| 巴青县| 北宁市| 那曲县| 军事| 偏关县| 南昌县| 阳新县| 贵德县| 黄大仙区| 南宫市| 法库县| 乐清市| 桐乡市| 昆山市| 鄂伦春自治旗| 成武县| 法库县| 阜新|