sql子表的审核历史记录

时间:2018-08-10 08:16:02

标签: sql sql-server database-design rowversion

我正在使用触发器记录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
)

0 个答案:

没有答案