设计数据层组件及各层间数据流通(2)

原创 2004年06月25日 10:10:00

技术上的思考<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

2 展示了在技术实现上对于数据存取逻辑组件和业务实体的影响。本文对每一个技术上的思考给予分析并提供参考建议。

关系数据到业务实体的映射

数据库通常包括多个表,并且通过主外键建立关系。当在你的.Net应用中定义业务实体表示数据是,你必须首先决定如何映射这些表和业务实体。

考虑假设的零售商数据库 如图3

以下是在例子数据库中的表概要

Type of relationship

Example

Description

One-to-many

Customer: Address



Customer: Order

A customer can have many addresses, such as a delivery address, a billing address, and a contact address.

A customer can place several orders.

Many-to-many

Order: Product

An order can comprise many products; each product is represented by a separate row in the OrderDetails table. Likewise, a product can be featured in many orders.

当你定义了业务实体来模拟数据库中的信息时,要考虑如何在应用中使用这些信息。确认封装你应用中的关键功能到核心业务实体中,然后是一些分离的业务实体对应于每一张表。

在假定的零售商应用中,典型的操作如下:

·                        取得(或更新)用户信息,包括他/她的地址

·                        取得客户的订单列表

·                        取得一个特定订单的订货详单

·                        下一个新订单

·                        取得(或更新)一个或多个产品的信息

为了完成这些应用的需求,这儿有3种逻辑业务实体需要应用处理:客户,订单,产品。每一个业务实体,是一个分离数据存取逻辑组件,定义如下

·                        客户数据存取逻辑组件 该类将有获取和修改客户表和地址表数据的功能。

·                        订单数据存取逻辑组件   该类将有获取和修改订单表和订单详表数据的功能

产品数据存取逻辑组件 该类将有获取和修改产品表数据的功能

4 描述了数据存取逻辑组件和对应数据库表中的关系

对于实施数据存取逻辑组件,看本文后面的部分:实施数据存取逻辑组件

关系数据到业务实体映射的建议

关系数据到业务实体的映射,考虑以下建议

·                        花时间分析应用的逻辑业务实体并建模,而不是对每个表定义分离的业务实体。 如何实现建模工作,使用UML UML是一个正式的用于基于物件应用建模的设计符号,用来捕获物件表示信心和自动处理过程,人为因素,相互关系。更多信息:http://msdn.microsoft.com/architecture/application/default.aspx?pull=/library/en-us/vsent7/html/vxoriModelingYourApplicationData.asp 为你的应用和数据建模

·                        不要定义分离的业务石头来表示数据库中多对多的表;这些关系通过实施数据存取逻辑组件的方法来展示。例如,先前例子中的订单详单表没有被映射成多个业务实体,相反的,订单数据存取逻辑组件封装了订单详单表来取得订单和产品之间多对多的关系。

·                        如果你的方法返回一个特定类型的业务实体,那么把这些方法放到数据存取逻辑组件来表达这种类型。例如,为一客户取得所有的订单,在订单数据存取逻辑组件中实现这个方法,因为你的返回值是一个订单类型。相反地,如果要取得指定产品的所有订单客户,应该在客户数据存取逻辑组件中实现该功能。

·                        数据存取逻辑组件通常在单个的数据源中存取数据。若需要聚合多个数据源,推荐定义各个分离的数据存取逻辑组件来取得各个数据源数据,然后在较高层次上实现集成。推荐这种方式有两个原因:

·                                      事务管理集中在业务处理组件中,并不需要数据存取逻辑组件的显示控制。如果需要从一个数据存取逻辑组件取得多个数据源,你需要数据存取逻辑组件作为事务的基础,在你仅仅是读取数据的时候它将引进附加的高层的功能。

·                                      集成通常不需要在应用的所有领域,通过分离存取数据,当需要时你可以让特定类型作为集成的一个部分。

 

 

设计数据层组件及各层间数据流通(1)

概要:如何在微软.Net应用下最大程度上展示数据及如何在分布式应用下实施有效的数据流通的策略. 内容 介绍 映射关系数据和业务实体 实施数据存取逻辑组件 实施业务实体 事务 校验 异常管理 授权及安全...
  • wildhorseli
  • wildhorseli
  • 2004年06月25日 10:02
  • 1382

设计数据层组件及各层间数据流通(3)

实施数据存取逻辑组件 数据存取逻辑组件是无状态的类,这就意味着所有的消息交换是独立进行释解的。在调用中没有状态会被保持。数据存取逻辑组件提供方法来取得单个数据库单表或关系表,或在某些情形下,多个数据库...
  • wildhorseli
  • wildhorseli
  • 2004年06月25日 10:43
  • 1092

TCPIP各层数据含义的本质

TCP/IP各层的协议数据单元(PDU) •  物理层                  比特 •  数据链路层         帧 •  网络层                  数据包 ...
  • xingqingly
  • xingqingly
  • 2014年07月21日 14:17
  • 1004

SSH各层详解与调用关系

model层:又叫做实体层或者entity层,是单纯的对数据库字段的封装 action层:是Struts带来的层,负责与页面进行数据交互和调用service层进行业务逻辑处理 service层:获...
  • xiaotaode2012
  • xiaotaode2012
  • 2013年09月20日 21:28
  • 733

OSI与TCP/IP各层的结构与功能

TCP/IP四层模型 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对...
  • gongzhuxiaoxin
  • gongzhuxiaoxin
  • 2016年08月25日 20:15
  • 982

OSI与TCP/IP各层的结构与功能,都有哪些协议?

OSI七层模型 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 数据格式化,...
  • sinat_32487221
  • sinat_32487221
  • 2017年02月16日 21:28
  • 438

TCP/IP 各层的主要协议及概念

虽然接触网络很长时间,但是TCP/IP各层协议以及主要涉及的概念经常记混了,这次特地整理了一下。...
  • world_hope
  • world_hope
  • 2015年09月11日 20:36
  • 4983

PCB各层含义及Gerber

本文从《PADS-PowerLogic和PowerPCB实用教程》中摘写及整理 PCB各层含义 对于不同的PCB设计就有不同的输出Gerber文件数,特别是不同板层的PCB设计差别更大。但...
  • Uncle_GUO
  • Uncle_GUO
  • 2015年03月04日 14:52
  • 1428

caffe学习系列二视觉层及参数

所有的层都具有的参数,如name, type, bottom, top和transform_param,请参看我的前一篇博客:http://blog.csdn.net/zhang_shuai12/ar...
  • zhang_shuai12
  • zhang_shuai12
  • 2016年09月30日 10:25
  • 309

理论篇~第三章 数据模型设计

常见数据模型介绍  1 ER模型     数据仓库之父Bill Inmon提出的建模方法,是从全企业的高度设计一个3NF模型,用实体关系(Entity Relationship,ER)模型描述企业...
  • wer0735
  • wer0735
  • 2017年09月24日 10:07
  • 232
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计数据层组件及各层间数据流通(2)
举报原因:
原因补充:

(最多只允许输入30个字)