<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
    Sealyu  2010-3-18

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

    posted on 2010-03-18 15:59 seal 閱讀(1195) 評論(0)  編輯  收藏 所屬分類: 數據庫
    主站蜘蛛池模板: 亚洲专区一路线二| 成人精品综合免费视频| 成人无码区免费视频观看| 亚洲精品国产国语| 亚洲成年看片在线观看| 免费观看91视频| 亚洲一区二区三区久久| 亚洲XX00视频| 99re6热视频精品免费观看| 亚洲高清有码中文字| 亚洲色一色噜一噜噜噜| 亚洲毛片免费视频| 一二三四在线观看免费中文在线观看| 日韩亚洲一区二区三区| 日韩免费一区二区三区在线| 四虎一区二区成人免费影院网址| 亚洲成人午夜在线| 亚洲成A人片在线观看无码3D| 亚洲免费在线播放| 亚洲6080yy久久无码产自国产| 亚洲va久久久噜噜噜久久狠狠| 最近2019中文免费字幕| a级日本高清免费看| 色天使亚洲综合在线观看| 亚洲日韩精品无码一区二区三区| 四虎永久在线精品免费观看视频| 一级毛片大全免费播放| 亚洲一级免费毛片| 亚洲伊人久久精品影院| 全免费a级毛片免费看不卡| 在线看片免费人成视频播| 亚洲国产精品日韩av不卡在线 | 99在线免费视频| 亚洲日韩乱码中文字幕| 亚洲午夜久久影院| 亚洲狠狠爱综合影院婷婷| 国产情侣激情在线视频免费看| 国产一级婬片A视频免费观看| 亚洲欧美日韩中文字幕一区二区三区 | 1000部拍拍拍18勿入免费凤凰福利| 国产免费一级高清淫曰本片 |