国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

元數據(metadata)在企業應用開發中的作用

2024-07-21 02:15:53
字體:
來源:轉載
供稿:網友
,歡迎訪問網頁設計愛好者web開發。
元數據(metadata)在企業應用開發中的作用

元數據(metadata)介紹:
metadata(元數據),它是“關于數據的數據”(data about data),近年來在軟件設計中metadata有廣泛的應用。
在編程中,元數據不是被處理的對象,而是通過改變元數據的一些“值”來改變程序的運行的數據。
可以“解釋”程序的運行時,不同的元數據值可以讓同一段程序有不同的運行結果。
元數據(metadata)應用:



在以前的工作中,經常遇到這樣的問題,



sqlserver數據庫中一個表如下:



create table [dbo].[dprofile] (



       [profile_id] [int] identity (1, 1) not null ,



       [profilename] [varchar] (250) collate chinese_prc_ci_as null ,



       [otherinfo] [varchar] (500) collate chinese_prc_ci_as null ,



       [validatestatus] [int] null



) on [primary]



為其定義一個實體類:



namespace e_commerce.data



{



       /// <summary>



       /// 卡屬性基本信息實體



       /// </summary>



       public class dprofileinfo



       {



              /// <summary>



              /// 其他信息



              /// </summary>



              public string otherinfo



              {



                     get



                     {



                            /*begin template                       



return motherinfo;                 



                            /*end template expansion{9d774738-e901-427a-86e7-ef2715768c17}*/



                     }



                     set



                     {



                            /*begin template expansion{f6a2b75d-d01b-47b0-b65d-e62e43286ddc}*/



                            motherinfo = value;                    



                            /*end template expansion{f6a2b75d-d01b-47b0-b65d-e62e43286ddc}*/



                     }



              }



              /// <summary>



              /// 卡屬性id



              /// </summary>



              public int profile_id



              {



                     get



                     {



                            /*begin template expansion{2230d3c4-9766-4778-9203-5063d88b468c}*/



                            return mprofile_id;              



                            /*end template expansion{2230d3c4-9766-4778-9203-5063d88b468c}*/



                     }



                     set



                     {



                            /*begin template expansion{0a1c9514-4ddb-4079-be19-8dace24cd454}*/



                            mprofile_id = value;                   



                            /*end template expansion{0a1c9514-4ddb-4079-be19-8dace24cd454}*/



                     }



              }



              /// <summary>



              /// 卡屬性名稱



              /// </summary>



              public string profilename



              {



                     get



                     {



                            /*begin template expansion{a43788b8-60a0-4882-9c51-a3dee710fe78}*/



                            return mprofilename;                  



                            /*end template expansion{a43788b8-60a0-4882-9c51-a3dee710fe78}*/



                     }



                     set



                     {



                            /*begin template expansion{829eef0a-a18a-4492-be57-67c4c57acfc3}*/



                            mprofilename = value;                



                            /*end template expansion{829eef0a-a18a-4492-be57-67c4c57acfc3}*/



                     }



              }



              private string motherinfo;



              private int mprofile_id;



              private string mprofilename;



       }



}
在開發和實際運行過程中經常發生這樣情況,經過一段時間用戶的實際情況變化了,可能想要在上面的實體中和其所對應的數據庫的table中增加一個或多個field。我們只能修改這個數據實體,在代碼開發完成后,進行這樣的修改是麻煩而且可能相當危險的。



設想一下現在的情況,由于種種原因需要更改上面的數據結構,我們打算增加兩個字段“price”“createtime”,有什么方法可以讓數據實體容易適應的進行這種變化呢



兩種方法:



1)  在表dprofile中增加一個描述所增加的field的元數據字段名稱為fieldsmetainfo,數據類型可以定義成text類型或image等二進制類型,在這個字段中定義一個xml格式的文檔描述和存儲所新增加的field。



格式可能是這樣的



<field name="price" frombasetype="true" type="text" displayname="價格" required="true" maxlength="255" defaultvalue=”0”  >123.45</field>



<field name=" createtime " frombasetype="true" type="datetiem" displayname="價格" required="true"  >2004-01-01</field>



這個新添加的字段記錄未來可能增加的field的數據類型信息和數據信息等其它信息



2)  增加兩個表



在表中存儲新增加的field信息



表profilefields



id  int



fieldname nvarchar(50)



fieldtype  nvarchar(50)



表profilefieldsvalue



id int



profileid int



profilevalue varchar(50)



profilefields表存儲增加的field名稱類型等信息



表profilefieldsvalue表存儲對應filed的值




 


在數據實體類中增加一個自定義類型的屬性返回存儲在源數據結構中的數據



可以是hashtable類型,也可以是自定義的其它集合類型



private hashtable metafieldslist;



自定義結構用來方便的存儲和更新




 



元數據(metadata)數據存儲結構:
元數據有許多存儲格式,其中最多使用的是xml格式。
xml最適合用來存儲元數據,易與使用和解析。

元數據(metadata)在o-r映射中所起的作用:




 



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳西县| 定襄县| 曲沃县| 东方市| 中超| 正阳县| 寻乌县| 武穴市| 万宁市| 通化县| 广安市| 西宁市| 海城市| 太康县| 两当县| 会宁县| 定襄县| 阳原县| 牟定县| 柳江县| 巴彦淖尔市| 江门市| 靖宇县| 平潭县| 石渠县| 礼泉县| 平湖市| 石楼县| 东莞市| 建水县| 兰考县| 成安县| 和田市| 刚察县| 滕州市| 磐安县| 梨树县| 安阳县| 连江县| 正阳县| 上林县|