员工表,有两个字段:员工姓名,员工编号。然后有很多表 ,比如“员工保险信息表,员工奖惩信息表,员工考核信息表”等,里面都有 “员工姓名”,“员工编号”。如果 “员工保险信息表,员工奖惩信息表,员工考核信息表”里只设置“员工编号”的话。那么每次取得“员工姓名”就得用表联合,表联合会降低效率。 如果不用表联合,则“员工保险信息表,员工奖惩信息表,员工考核信息表”每个表里面必须要有 “员工姓名” 的字段。 那么加入员工表里的员工姓名假如修改的话, 如何在其他表里 做到级联更新删除呢?

解决方案 »

  1.   

      LZ的想法确实与众不同啊!!
      我们一般数据库见表碰到这样的情况都是建一个员工信息表这是肯定的!然后使用外键什么的进行关联!
      所以在操作员工的时候就只需要操作一个员工信息表!
      按LZ的说法!我不建员工信息表!每个表里面都添加比如:员工姓名 这一列!
      你有没有想过当添加一个新员工的时候怎么办?
     每个表都添加一条新信息???
      

  2.   

    实现起来简单些
    用事务
    //执行事务处理
    public void DoTran()
    {  //建立连接并打开
     SqlConnection myConn=GetConn();
     myConn.Open();
     SqlCommand myComm=new SqlCommand();
     //SqlTransaction myTran=new SqlTransaction();
     //注意,SqlTransaction类无公开的构造函数
     SqlTransaction myTran;
     //创建一个事务
     myTran=myConn.BeginTransaction();
     try
     {
      //从此开始,基于该连接的数据操作都被认为是事务的一部分
      //下面绑定连接和事务对象
      myComm.Connection=myConn;
      myComm.Transaction=myTran; //定位到pubs数据库
      myComm.CommandText="USE pubs";
      myComm.ExecuteNonQuery();//操作1
      myComm.CommandText=""; //操作2
      myComm.ExecuteNonQuery();
       //提交事务
      myTran.Commit();
     }
     catch(Exception err)
     {
      myTran.rollback();
      throw new ApplicationException("事务操作出错,系统信息:"+err.Message);
      }
     finally
     {
      myConn.Close();
      }
    }
      

  3.   

    有点 印度神油 (indusl)的影子
      

  4.   

    可以参考一下用友那B的ERP中人事模块的数据库设计