1. 程式人生 > >元資料(metadata)在企業應用開發中的作用

元資料(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

IDint

FieldName nvarchar(50)

FieldTypenvarchar(50)

ProfileFieldsValue

ID int

ProfileID int

ProfileValue varchar(50)

ProfileFields表儲存增加的Field名稱型別等資訊

ProfileFieldsValue表儲存對應Filed的值

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

可以是Hashtable型別,也可以是自定義的其它集合型別

Private Hashtable metaFieldsList;

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

元資料(metadata)資料儲存結構:元資料有許多儲存格式,其中最多使用的是xml格式。
xml
最適合用來儲存元資料,易與使用和解析。元資料(metadata)o-r對映中所起的作用:

相關推薦

資料(metadata)在企業應用開發作用

元資料(metadata)介紹:Metadata(元資料),它是“關於資料的資料”(data about data),近年來在軟體設計中Metadata有廣泛的應用。在程式設計中,元資料不是被處理的物件

Node.js入門到企業Web開發應用

實戰 tput 統一 sse 介紹 有用 enc oba 入門到 第1章 課程內容介紹主要介紹為什麽我們錄制本次課程、課程包含的主要內容。1-1 導學1-2 課程介紹 第2章 NodeJS 是什麽,為什麽偏愛NodeJS?在一切課程課程內容開始之前先了解一下 NodeJS

OSGI企業應用開發(二)Eclipse搭建Felix執行環境

上篇文章介紹了什麼是OSGI以及使用OSGI構建應用的優點,接著介紹了兩款常用的OSGI實現,分別為Apache Felix和Equinox,接下來開始介紹如何在Eclipse中使用Apache Felix和Equinox搭建OSGI執行環境。 一、搭建A

.Net語言 APP開發平臺——Smobiler學習日誌:在手機應用開發如何實現跳轉地圖

demo hand 操作 窗體 clas com ps1 ati void 一、目標樣式 我們要實現上圖中的效果,需要如下的操作: 二、跳轉地圖代碼 VB: Private Sub Button1_Click(sender As Object, e As Ev

《精通Spring+4.x++企業應用開發實戰》讀後感

來講 ring 如果 項目 企業 xml配置 登錄 了解 能夠 引言 還記得大三時上培訓班的是時候,當時的培訓老師說自己是本地講解spring最好的講師,但是後來等我實習了看了《Spring 3.x 企業應用開發實戰》以及後續版本《精通Spring+4.x++企業應用開發實

Java應用開發的SQL註入攻擊

包括 安全防護 sql註入 什麽 由於 應用程序 輸入數據 數據庫防火墻 進行 1. 什麽是SQL註入攻擊? SQL註入攻擊是黑客對數據庫進行攻擊的常用手段之一。隨著B/S模式應用開發的發展,使用這種模式編寫應用程序的程序員越來越多。但是由於程序員的水平及經驗參差不齊,相當

_036_Android_將資料儲存到 應用程式(私有的)

儲存 資料 出現 異常 : 是因為 , 這裡的 路徑 以及 儲存的方式 都 有問題 , 目前是執行 在androd中, android底層 是linux核心, linux 檔案系統 是根目錄是 一個 /   寫 File  file = new File(“in

Spring 3 x 企業應用開發實戰 含CD光碟1張

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android應用開發三種常見的圖片壓縮方法

Android應用開發中三種常見的圖片壓縮方法,分別是:質量壓縮法、比例壓縮法(根據路徑獲取圖片並壓縮)和比例壓縮法(根據Bitmap圖片壓縮)。 一、質量壓縮法 private Bitmap compressImage(Bitmap image) { ByteArrayOutput

[UWP]在應用開發安全使用檔案資源

在WPF或者UWP應用開發中,有時候會不可避免的需要操作檔案系統(建立檔案/目錄),這時候有幾個坑是需要大家注意下的。 建立檔案或目錄時的非法字元檢測 在Windows系統中,我們建立檔案時會注意到,某些特殊字元是不可以用作檔名輸入的。 那麼,同樣的,如果你的應用可以提供給使用者建立檔案/目錄的功能

應用開發,網易雲音樂如何兼顧質量和效益

在應用開發中,質量和效益是非常關鍵的因素。網易雲音樂作為使用者人數突破4億,成就移動音樂傳奇的應用,是如何在開發中兼顧質量和效益的?網易雲音樂Android負責人樑建將為您解讀。 框架賦能 典型的開發框架從上往下分為三層,分別是業務層、服務層、能力層,三者之間是垂直依賴的關係,且業務層之間的水平模組不互相依

移動應用開發AppID、AppKey、AppSecret到底是什麼?

AppID:應用的唯一標識 AppKey:公匙(相當於賬號) AppSecret:私匙(相當於密碼) token:令牌(過期失效) 使用方法 1. 向第三方伺服器請求授權時,帶上AppKey和AppSecret(需存在伺服器端) 2. 第三方伺服器驗證AppKey

web應用開發中文亂碼問題

web應用中中文亂碼問題 在java程式中,出現中文亂碼問題的原因的根源在於java程式和其他儲存媒介互換資料時,兩者編碼方案不同。 常見的中文字元編碼: GB2312-80 GB2312是簡體漢字標準字元編碼方案,是基於區位碼設計的。收錄了常用的簡體

釘釘ISV第三方企業應用開發思路

一、企業開戶(資料庫:meng)公司表, 充值記錄,套餐表, 1. 企業開戶(管理員釘釘號入口) 2. 建立1條記錄:名稱、有效期、DB名稱 3. 建立企業系統庫的DB,初始化(匯入SQL,修改一些預設資料) 二、企業員工登入(資料庫:saas_表ID) 1. 釘釘登入 2

QIIME 2使用者文件. 10資料Metadata(2018.11)

文章目錄 前情提要 QIIME 2使用者文件. 9元資料 元資料格式要求 元資料驗證 前導和尾隨空格字元 註釋和空行 識別符號列 識別符號的建議 元資料列 列型別

什麼是資料(Metadata)?

什麼是元資料        任何檔案系統中的資料分為資料和元資料。資料是指普通檔案中的實際資料,而元資料指用來描述一個檔案的特徵的系統資料,諸如訪問許可權、檔案擁有者以及檔案資料塊的分佈資訊(inode...)等等。在叢集檔案系統中,分佈資訊包括檔案在磁碟上的位置以及磁碟

31、你瞭解Java應用開發的注入攻擊嗎?

安全是軟體開發領域永遠的主題之一,隨著新技術浪潮的興起,安全的重要性愈發凸顯出來,對於金融等行業,甚至可以說安全是企業的生命線。不論是移動裝置、普通 PC、小型機,還是大規模分散式系統,以及各種主流作業系統,Java 作為軟體開發的基礎平臺之一,可以說是無處不在,自然也就成為安全攻擊的首要

Android應用開發保持手機螢幕常亮的方法

如果你開發一個手機App,某一個功能要執行某個操作比較費時,那麼我們的選擇是採用執行緒來做,然後通過一個handler來發送訊息給管理介面的執行緒來重新整理介面。但是時間太長的話,會發現手機螢幕不亮了,儘管你的App沒有退出,但是那個執行的執行緒它也不工作了,除非你按下p

【Spring】Spring 3.x企業應用開發實戰(6)----BeanFactory

BeanFactory是一個類工廠,是類的通用工廠。不多說,直接進入BeanFactory的使用: 首先建一個Bean類,Car.java package com.techman.reflect

學習《spring 3.x企業應用開發實戰》之使用OXM進行物件XML對映

1、認識XML解析技術 1.1、XML相關概念 (1)DTD:XML語法規則,是XML檔案的驗證機制,可以通過比較XML文件和DTD檔案看文件是否符合規範,元素和標籤是否使用正確。 (2)XML是SOA的基礎。 1.2、XML處理技術 (1)為了使用XML,我們需要通過X