现在的位置: 首页 > 综合 > 正文

数据库表关系模型解析7——多对多数据模型中的一张表是自连接

2013年01月20日 ⁄ 综合 ⁄ 共 1503字 ⁄ 字号 评论关闭
文章目录

此处详细记录了现实项目中多对多数据模型中的一张表是自连接列表页面和增删改查页面。
狼奔代码生成器可以自动生成ASP.NET页面及后台代码。
生成的项目用到的技术有:Jquery+MVC+Entity Framework。

实践开发过程中,我们使用PowerDesigner设计数据库模型。狼奔代码生成器就是读取PowerDesigner设计的数据库模型,分析其中的表与表之间的关系模型,分析其中的表和字段的说明信息中的关键字,自动生成不同的页面。

表与表之间的关系模型包括

  1. 单表数据模型
  2. 自连接数据模型
  3. 一对一数据模型
  4. 一对多数据模型
  5. 一对多数据模型中的一张表是自连接
  6. 多对多数据模型
  7. 多对多数据模型中的一张表是自连接

关键字包括

  1. 查询
  2. 状态
  3. 上传
  4. 工作流

 

架构图

组件说明

图表 1项目组件说明图

  1. App——页面展示层

    采用MVC框架,使用Jquery脚本库,控件选用Easyui。

  2. WcfHost——服务宿主(后期扩展)

    为对外的服务提供宿主,使用WCF技术,HTTPS通讯协议。

  3. IBLL——业务接口层

    业务逻辑层的方法对外暴露的接口和服务契约。

  4. BLL——业务逻辑层

    业务逻辑的操作,包括业务处理,事务,日志。

  5. DAL——数据访问层

    数据库访问的操作,数据实体,业务实体,数据校验,使用Entity Framework。

  6. Common——公共组件层

    整个应用程序使用的公共辅助方法。

  7. WFActivitys——工作流活动层(后期扩展)

    定义了工作流需要的活动,使用微软WF技术。

  8. WFDesigner——工作流设计器(后期扩展)

    可以让实施人员自由配置工作流的设计器,使用微软WPF技术。

     

人员的作用

使用人员的用户名和密码登陆系统

人员和部门之间有一张关联表,而部门是一个典型的自连接表 ,这三张表就构成了一个典型的"多对多数据模型中的一张表是自连接"

下面我们以人员为例子分析"多对多数据模型中的一张表是自连接"数据模型,代码已在生成的文件中,并且注释详备,此文不再赘述

数据模型

部门和人员之间是多对多的关系,而部门又是一张自连接的表

查询

 

列表

页面展示层App

Mvc中的View的代码

此列表页面是参照\jquery-easyui-1.2.3\demo\tree.html页面开发的

 

Mvc中的Controller的代码

 

Mvc中的Model的代码

Model就是Entity Framework自动生成的实体

业务接口层IBLL

此层作为业务逻辑层方法的接口,也是WCF对外暴露的契约

业务逻辑层BLL

数据字典类的业务逻辑写在BLL类库中,事务使用TransactionScope对象,SysPersonBLL.cs类文件里面封装了业务逻辑的操作方法,并且继承了BaseBLL基类

整个项目应该遵循的原则是:胖BLL,瘦mvc

数据访问层DAL

其中SysPerson.cs文件放置的是表的实体和实体元数据的验证,而SysPersonRepository.cs文件放置的是访问数据库的方法

业务实体在SysPerson.cs文件中的SysPerson类,它是一个分部 partial 类,内部可以自定义属性,MetadataType属性中指定了该实体属性的校验类SysPersonMetadata,并且它继承了IBaseEntity接口(此接口暂时没有任何成员);

SysPerson.cs文件中还有一个SysPersonMetadata类用于校验SysPerson类中的成员。注意校验类需要引用using System.ComponentModel.DataAnnotations;命名空间。

服务层

(后期扩展)

删除

先选中一条,然后点击删除

创建

选择部门(树形结构)

选择角色(非树形结构)

修改

查看详细信息

 

抱歉!评论已关闭.