<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評(píng)論 :: 0 Trackbacks
    Sealyu  2010-3-18

    在項(xiàng)目中經(jīng)常會(huì)碰到這樣的問題: 用戶要求他們的產(chǎn)品等實(shí)體的屬性是可定制的。比如:產(chǎn)品的數(shù)量、高度、重量等屬性,都是可以在后臺(tái)增刪該查的。在這種情況下,使用java建立實(shí)體就遇到問題了,因?yàn)閿?shù)據(jù)庫中的字段是不定的。 這種情況在一些單據(jù)、試卷等地方是很常見的。
    1。目前為止,沒有發(fā)現(xiàn)比較完美的解決方法。 之前項(xiàng)目中遇到了一次動(dòng)態(tài)生成單據(jù)的情況,主要是通過使用幾張表來存儲(chǔ)表的結(jié)構(gòu)和字段信息來實(shí)現(xiàn)。 這種情況下,實(shí)現(xiàn)查詢和報(bào)表等功能時(shí)就會(huì)受到影響。 具體方法跟下面這位的類似:
    我在給一家打字公司開發(fā)一個(gè)將表單的內(nèi)容輸入數(shù)據(jù)庫的程序。表單中可能有簡單的送貨收據(jù)(20多個(gè)字段),可能有民意調(diào)查的表格(50多個(gè)字段),可能有保險(xiǎn)公司的用戶登記表(100多個(gè)字段)。討厭的是這樣的表單可能又幾百種。   
          我設(shè)計(jì)的數(shù)據(jù)庫如下:   
          表單的種類表(表1):   
          Form_ID           //表單的種類ID   
          Form_Name       //表單的名稱   
        
          某一個(gè)表單的字段表(表2)   
          Field_ID           //字段的ID   
          Field_Name       //字段的名稱   
          Form_ID             //表單的種類ID,與表1連接   
        
          具體的某一個(gè)表單表(表3)   
          Sheet_ID                     //具體的某一個(gè)表單的ID   
          Client_ID                   //這個(gè)表單所屬的客戶ID,與客戶表連接   
        
          某一個(gè)表單的字段內(nèi)容表(表4)   
          Field_Value_ID         //字段的內(nèi)容ID   
          Field_Value               //字段的內(nèi)容   
          Field_ID                     //字段的ID,與表2連接   
          Sheet_ID                     //具體的某一個(gè)表單的ID,與表3連接   
        
          每增加了一種新的表單時(shí),在表1和表2中添加如下記錄:   
              表1:Form_ID           Form_Name   
                          A001                 送貨單     
              表2:Field_ID         Field_Name       Form_ID             
                          f0001               發(fā)貨日期           A001     
                          f0002               發(fā)貨人               A001     
                          f0003             收貨人地址         A001     
          這樣,當(dāng)某一個(gè)打字公司的客戶要求輸入這個(gè)“送貨單”時(shí),每輸入一個(gè)送貨單(即表單表3),表3和表4添加如下記錄:(每輸入一個(gè)送貨單之類的表單,表3和表4都添加數(shù)據(jù))   
              表3:Sheet_ID         Client_ID   
                          S001                 0000001   
              表4:Field_Value_ID         Field_Value         Field_ID           Sheet_ID   
                              V0001                         2001.5.8               f0001                 S001     
                              V0002                             張三                     f0002               S001     
                              V0003                     大連市西崗區(qū)             f0003                 S001     
          打字公司根據(jù)具體的某一個(gè)表單的ID(Sheet_ID),結(jié)合4個(gè)表提取客戶ID、表單種類名稱、字段名稱和字段內(nèi)容存入另外的數(shù)據(jù)庫。   
    2。還看到過一種情況,是只用一個(gè)長字符串字段,利用xml的格式來存儲(chǔ)對(duì)應(yīng)的結(jié)構(gòu),同時(shí)在java中使用xml2db等工具來解析。這種情況下,查詢和報(bào)表功能同樣不好實(shí)現(xiàn)。同時(shí),xml節(jié)點(diǎn)的增刪該查也不太方便。
    3。最后一種方法,是直接使用數(shù)據(jù)庫來實(shí)現(xiàn)。前幾天看到DB2 9中已經(jīng)支持對(duì)XML格式數(shù)據(jù)的存儲(chǔ)和查詢。使用XQUERY來配套實(shí)現(xiàn)查詢。不過這種方法對(duì)數(shù)據(jù)庫的依賴性強(qiáng),目前為止,還沒發(fā)現(xiàn)有其他數(shù)據(jù)庫提供這種功能。

    posted on 2010-03-18 15:59 seal 閱讀(1202) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫
    主站蜘蛛池模板: 免费看污成人午夜网站| 亚洲国产三级在线观看| 亚洲av丰满熟妇在线播放| 女bbbbxxxx另类亚洲| 免费看美女被靠到爽| 亚洲AV无码国产精品色| 亚州免费一级毛片| 亚洲系列国产精品制服丝袜第| 美女内射无套日韩免费播放| 亚洲va中文字幕无码久久| 久久久99精品免费观看| 久久精品亚洲中文字幕无码网站 | 国产成人在线免费观看| 亚洲精品成a人在线观看☆| 国产成人免费高清激情视频| 亚洲综合色婷婷在线观看| 在线a人片天堂免费观看高清| 亚洲色www永久网站| 中国在线观看免费国语版| 亚洲精品无码少妇30P| 亚洲国产精品嫩草影院在线观看 | 男人的天堂亚洲一区二区三区 | 亚洲AⅤ视频一区二区三区| 久久久久久久99精品免费| 国产精品成人亚洲| 4338×亚洲全国最大色成网站| 国产成人免费AV在线播放| 亚洲午夜电影一区二区三区| 精品国产免费观看久久久| 久久伊人免费视频| 丁香婷婷亚洲六月综合色| 免费成人黄色大片| 欧洲人免费视频网站在线| 香蕉97碰碰视频免费| 亚洲邪恶天堂影院在线观看| 好吊妞在线成人免费| 免费视频成人片在线观看| 97在线免费视频| 亚洲妇女熟BBW| 亚洲日韩乱码中文无码蜜桃臀网站 | 男女一边桶一边摸一边脱视频免费|