0

我有 3 张桌子。一个表EMPLOYEE是父表,它包含公司的所有员工,然后我有子表,其中包含表中EMP_ID的 PK 和 FKEMPLOYEE以及其他特定信息。考虑到EMPLOYEE表中有EMP_TYPE员工的类型,是否可以通过将记录输入到 中EMPLOYEE,记录应该自动识别其类型并将自己复制到相关表中?

4

2 回答 2

0

有两种方法可以做到这一点:

  1. 使用插入数据库触发器。
  2. 从前端或业务层做(我假设你有)
于 2013-01-20T04:03:22.977 回答
0

您可以为此使用触发器函数,该函数检查EMP_TYPE然后在相应的子表中插入数据。确保在将数据插入父表时触发这些触发器。

或者您寻找对象关系数据库。

对于 MySQL,它可能看起来像这样(不知道模型的真实结构,但它应该很容易适应您的具体情况):

CREATE TRIGGER testref AFTER INSERT ON Employee
  FOR EACH ROW BEGIN
    IF NEW.EMP_TYPE = 'PROGRAMMER' THEN
      INSERT INTO Programmer (id, type, name, salary, start_date) values (NEW.EMP_ID, NEW.EMP_TYPE, NEW.NAME, NEW.SALARY, NEW.START_DATE);
    ELSE
      INSERT INTO Intern (id, type, name, salary) values (NEW.EMP_ID, NEW.EMP_TYPE, NEW.NAME, NEW.SALARY);
    END IF;

结尾;

于 2013-01-20T01:42:56.397 回答