现有一人事系统 有如下表
一、主表:[T_职工表]
姓名 ID
张三 1
李四 2
王五 3
二、表名:[T_部门表]
职工ID 部门代码 变动时间
1       1       2002-04-01
1       2       2002-12-01
1       3       2004-01-01
2       3       2002-12-01
3       3       2004-05-01
3       4       2004-07-01
三、表名:[T_部门代码表]
部门代码  值
1       财务部
2       人事部
3       办公室
---------------------------------------------------
这样子的话可通过部门表、部门代码表进行联接管理生成职工部门历史变动信息
---------------------------------------------------
如果
1、主表是 [T_职工表] 子表是 [T_部门表]
2、想在 [T_部门代码表] 保存最新的部门情况。
3、在[T_部门表]中保存某职工的部门变动历史会有以下问题  如果办公室这个机构取消了,那么就要把 [T_部门代码表] 中“办公室”项删除了,使[T_部门代码表]保持最新部门情况
  那么 [T_部门表] 有的历史记录含有“办公室”的话会找不到相关代码,无法保存历史记录。有人碰到过这种问题吗,除了[T_部门代码表]中保存一个标记字段外,还是别的什么办法如何处理的,请赐教。

解决方案 »

  1.   

    办公室撤销后,如果原来办公室的人员也都撤销,那么先将[T_部门表]中部门代码等于3的记录删除,然后,删除部门代码表中的办公室的记录;
                  如果原来办公室的人员调换到别的部门,那么先将[T_部门表]中部门代码等于3的记录修改为调换后部门的编码,再删除部门代码表中的办公室的记录;
      

  2.   

    问题是如何保存 职工 的部门变动历史
      

  3.   

    那么就不要删除部门表阿,做一个字段表示该部门现在是否还存在算了,方便简捷
      

  4.   

    写的100分求助怎么只有50分阿,呵呵
      

  5.   

    只要在表中多增加字段 ,变动历史时间,和部门状态,查询时候根据着2个状态列出来就可以了!
      

  6.   

    增加一个日志表:四、表名:[T_部门代码日志表]
    原部门代码  原值 原部门代码  原值 修改人 修改日期       修改时间 修改标志
    1       财务部     4               张三   2004/08/27    12:10    增加
    2       人事部     5                                              修改
    3       办公室     6                                              删除
      

  7.   

    写错了,应该如下:四、表名:[T_部门代码日志表]
    原部门代码  原值 现部门代码  现值 修改人 修改日期       修改时间 修改标志
    1       财务部     4               张三   2004/08/27    12:10    增加
    2       人事部     5                                              修改
    3       办公室     6                                              删除