数据库MODEL BLL类实现中的问题

来源:互联网 发布:淘宝客怎么生成淘口令 编辑:程序博客网 时间:2024/05/16 18:28

现有表结构如下:
人员表:
  工号 姓名 性别 职位代码 部门代码 ……
部门表:
  部门代码 部门名称……外键关联
职位表:
  职位代码 职位名称……外键关联

类设计:

第一种:
  private string 工号
  private string 姓名
  private string 性别
  private string 职位代码
  private string 部门代码
第二种:
  private string 工号
  private string 姓名
  private string 性别
  private string 职位代码
    private string 职位名称
  private string 部门代码
    private string 部门名称

现在主体是人员,对人的操作主要有与DATAVIEW的绑定显示,人的新增、更新、删除等操作,
请问人员类要怎么设计才能满足以上几个操作的要求?
第一种方法便于对人员的新增、更新及删除,
第二种方法便于对显示的操作,不需再作处理,显示到界面中就是直接是中文名称而不是代码啦。

虽然显示可以用如下SQL语句直接得到

select 人员表.*,部门表.部门名称,职位表.职位名称 from 人员表,部门表,职位表 where 人员表.部门代码=部门表.部门代码 and 人员表.职位代码=职位表.职位代码

但是还是想有一个方法类来实现,代码如下

public interface IBaseProcessor  //IDAL ()
{
    void Delete(baseClass baseInfo);
    void Update(baseClass baseInfo);
    void Append(baseClass baseInfo);
}
public baseClass  //数据库MODEL
{
  private string 工号
  private string 姓名
  private string 性别
  private string 职位代码
  private string 部门代码
    ...
}

public baseProcessor:IBaseProcessor  //BLL (实现增删改)
{
    //自己实现去
}

public newClass:baseClass //数据库MODEL派生 存放关联表字段信息(对于1对1 1对多 多对多)
{
    private string 职位名称
    private string 部门名称
    ...
}

public interface INewProcessor   //IDAL  显示类接口
{
    NewClassCollection Load();
    //或者
    DataTable Load();
}

public newProcessor:baseProcessor,INewProcessor  // 显示类实现 BLL
{
    //自己实现INewProcessor
}

这样加载显示的部分只要关心INewProcessor接口,并实现它即可
保存的过程中只要关心IBaseProcessor在baseProcessor中实现接口的方法去处理
由于newClass是baseClass继承下来,所以操作显示都没冲突。
只需创建newClass和newProcessor。

 

 

 

原创粉丝点击