0

我正在TaskDetail使用触发器记录表上的所有插入和更新,现在我想将多个员工分配给一个任务,但是如果员工 ID 存储在不同的子表中,我如何跟踪审计历史,我考虑将员工 ID 存储为逗号分隔值,但子表始终是一个不错的选择。

在 TaskStaff 表中,多个员工将具有相同的 taskId

CREATE TRIGGER [dbo].[TaskDetail_History_Trigger]
ON [dbo].[TaskDetail]
FOR Insert,UPDATE
AS

INSERT INTO TaskHistory SELECT * FROM inserted
GO

ALTER TABLE [dbo].[ProductionDetail] ENABLE TRIGGER [Task_History_Trigger]
GO

CREATE TABLE [dbo].[TaskDetail](
[Id] [int] IDENTITY(1,1) NOT NULL,
[StaffId] [int] NULL,
CONSTRAINT [PK_ProductionDetail_1] PRIMARY KEY CLUSTERED 
(
  [Id] ASC
)

CREATE TABLE [dbo].[TaskHistory](
[HistoryId] [int] IDENTITY(1,1) NOT NULL,
[Id] [int]  NOT NULL,
[StaffId] [int] NULL,
CONSTRAINT [PK_ProductionDetail_1] PRIMARY KEY CLUSTERED 
(
  [Id] ASC
)


 CREATE TABLE [dbo].[TaskStaff](
  [Id] [int] IDENTITY(1,1) NOT NULL,
  [TaskId] [int] NOT NULL,
  [StaffId] [int] NOT NULL,

CONSTRAINT [PK_ProductionDetailStaff] PRIMARY KEY CLUSTERED 
(
  [Id] ASC
)
4

0 回答 0