`

元数据(metadata)在企业应用开发中的作用

    博客分类:
  • XML
阅读更多
元数据(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最适合用来存储元数据,易与使用和解析。

原文:http://www.cnblogs.com/umlchina/archive/2004/08/12/metadata.html
分享到:
评论

相关推荐

    大数据环境下的统计元数据建设.pdf

    子""对统计业务工作起到什么作用""对统计数据资 源建设起到什么作用"这三个问题展开论述在 国内企业一套表制度实行以后,上海统计局和厦门 统计局基于国家企业一套表元数据库和元数据标 准,结合实际统计工作,开发...

    metadata_api:开发人员访问元数据的后端工具

    这是一个Python Flask应用程序,可通过返回JSON结果的HTTP端点提供对脆弱家庭元数据的访问。 Web端点允许Web用户以几种方式查询,选择和过滤元数据变量。 还提供对“原始”元数据CSV文件的访问。 最新的CSV文件...

    music-metadata-react:React应用程序以测试与音乐元数据浏览器的集成

    在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。 npm test 在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。 ...

    毕设&课设&项目&实训-元数据管理系统.zip

    毕设&课设&项目&实训-元数据管理系统(leap metadata)是用于企业内进行元数据管理的Web应用程序。该系统提供直观的用户页面。 【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、...

    获取SQL Server数据库元数据的几种方法

    元数据 (metadata) 最常见的定义为“有关数据的结构数据”,或者再简单一点就是“关于数据的信息”,日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在关系型数据库管理系统 (DBMS) 中,元数据描述了...

    fair-metadata-wizard:Wizard‍:male_sign:向导可生成JSON-LD元数据

    在开发中运行 :construction: 要求: 和安装。 克隆存储库: git clone https://github.com/MaastrichtU-IDS/fair-metadata-wizard cd fair-metadata-wizard 安装依赖项 :inbox_tray: yarn Web应用程序将在 yarn...

    Delphi/Kylix数据库开发附书源码

    MetaData-演示如何从dbExpress连接获取简单的元数据。 DDLSQL-演示如何将DDL和SQL命令直接发送到TSQLConnection组件。 Trans-演示在dbExpress中如何支持事务。 Feedback-演示如何为dbExpress连接中发生的情况...

    node.js和mongodb中的Steedos低代码无代码平台,使用元数据来描述对象,字段,代码,逻辑,和页面布局

    元数据可以导入到Steedos中,可以在产品界面中进行修改,也可以通过Steedos Metadata API进行操作。 :robot_face: :artist_palette: :rocket:什么是Steedos元数据? 元数据是steedos基础架构的核心。 元数据与对象...

    ui-plugin-find-finc-metadata-collection:Finder插件的详细信息和元数据集合

    ui-plugin-find-finc-元数据收集版权所有(C)2019开放图书馆基金会该软件根据Apache许可证2.0版的条款进行分发。 有关更多信息,请参见文件“ ”。介绍恭喜您创建了一个新的Stripes UI应用程序模块! 请按照以下...

    C#微软培训资料

    C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出...

    metadata-broker-open-core:这是IDS元数据代理的开放核心参考实现的存储库

    它目前正在开发中,打算作为国际数据空间协会(IDSA)成员的参考,以帮助实施自定义Broker解决方案。 在此存储库上的工作与IDS握手文档非常吻合,后者以文本形式描述了IDS上的通信概念。 目的 此实现的目标是展示...

    框架:IONDV。 框架是用于企业Web应用程序开发的高级框架

    该平台包含以下开源组件: ,和现成的应用程序可扩展其功能,以及可视化开发环境可为该应用程序创建元数据。 UML方案建模的应用程序可以在启动。 描述 IONDV。 框架-是用于基于元数据创建高级Web应用程序的工具。 ...

    数据库系统安全管理设计.doc

    数据的安全管理实施方法 实施数据的安全管理,必须建立集中式元数据管理系统,存储数据仓库以及各业务系 统数据库的METADATA,在元数据系统中定义用户、组别等对象,将数据授权流程化。所 有的应用必须遵照元数据...

    数据库系统安全管理设计(1).doc

    数据的安全管理实施方法 实施数据的安全管理,必须建立集中式元数据管理系统,存储数据仓库以及各业务系 统数据库的METADATA,在元数据系统中定义用户、组别等对象,将数据授权流程化。所 有的应用必须遵照元数据...

    Oracle Olap开发备忘录

    4、Oracle Olap API虽与JOlap不兼容,但是两者的概念非常类似,他们与其他API最大的不同之 &lt;br&gt;处是非常强调元数据与数据的区别,这一点从两者的文档中可以直观的看到:直接的对象体系及操作是 &lt;br&gt;没有...

    Drupal专业开发指南

    是一个开源的内容管理系统(CMS)平台,用于构造提供多种功能和服务的动态网站,这些功能包括用户管理(User Administration)、发布工作流(Publishing Workflow)、讨论、新闻聚合(News Aggregation)、元数据(Metadata)...

    Java-Annotation手册.docx

    Annotation提供了一条与程序元素关联任何信息或者任何元数据(metadata)的途径。从某些方面看,annotation就像修饰符一样被使用,并应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中。这些信息被...

    mdEditor:用于编写元数据的Web应用程序,一个ADIwg项目

    用于编写元数据的Web应用程序。 使用。 转到以使用该应用程序。 有关的信息,请参见 。 另外,请参阅以获取有关该项目的更多信息。 先决条件(用于开发) 您需要在计算机上正确安装以下物品。 安装 git clone ...

    sharepoint2010 Beta安装步骤

    受控元数据服务在SharePoint 2010中无所不在,他是标签和分类的基础。通过中心统一管理元数据分类和词汇表,SharePoint上的文档管理可以使得企业数据的分类更有序,知识重复利用率得到提高,检索效率也得到提升。

    server-timing-metadata:将元数据添加到服务器定时并从浏览器获取

    首先,运行开发服务器: npm run dev # or yarn dev 用浏览器打开以查看结果。 您可以通过修改pages/index.js来开始编辑页面。 页面在您编辑文件时自动更新。 学到更多 要了解有关Next.js的更多信息,请查看以下...

Global site tag (gtag.js) - Google Analytics