0

私は3つのテーブルを持っています。親テーブルである1つのテーブルEMPLOYEEには、会社のすべての従業員が含まれています。次に、テーブルEMP_IDからのPKおよびFKEMPLOYEEおよびその他の特定の情報を持つ子テーブルがあります。従業員のタイプを保持するEMPLOYEEテーブルがあることを考慮して、にレコードを入力することで、レコードは自動的にそのタイプを認識し、関連するテーブルにコピーする必要がありますか?EMP_TYPEEMPLOYEE

4

2 に答える 2

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 に答える
0

これには 2 つの方法があります。

  1. 挿入時のデータベース トリガーの使用。
  2. フロントエンドまたはビジネスレイヤーから実行します(それがあると仮定しています)
于 2013-01-20T04:03:22.977 に答える