30 lines
1.9 KiB
SQL
30 lines
1.9 KiB
SQL
SET XACT_ABORT ON;
|
|
BEGIN TRANSACTION;
|
|
|
|
IF OBJECT_ID(N'dbo.[EventJudgeScoreAttachment]','U') IS NULL
|
|
BEGIN
|
|
CREATE TABLE dbo.[EventJudgeScoreAttachment] (
|
|
[Id] BIGINT NOT NULL CONSTRAINT [PK_EventJudgeScoreAttachment] PRIMARY KEY,
|
|
[EventId] BIGINT NOT NULL, [SessionId] BIGINT NOT NULL,
|
|
[SessionEntryId] BIGINT NOT NULL, [ScoreSheetId] BIGINT NOT NULL,
|
|
[JudgeAssignmentId] BIGINT NOT NULL, [RefereeId] BIGINT NOT NULL,
|
|
[AttachmentType] NVARCHAR(32) NOT NULL, [FileName] NVARCHAR(128) NOT NULL,
|
|
[FileUrl] NVARCHAR(1000) NOT NULL, [FileSize] BIGINT NOT NULL,
|
|
[ContentType] NVARCHAR(64) NOT NULL, [IdempotencyKey] NVARCHAR(64) NOT NULL,
|
|
[IsCurrent] BIT NOT NULL CONSTRAINT [DF_EventJudgeScoreAttachment_IsCurrent] DEFAULT (1),
|
|
[DeleteMark] BIT NOT NULL CONSTRAINT [DF_EventJudgeScoreAttachment_DeleteMark] DEFAULT (0),
|
|
[CreatedUserId] BIGINT NOT NULL, [CreatedTime] DATETIME2(3) NOT NULL,
|
|
[UpdatedUserId] BIGINT NULL, [UpdatedTime] DATETIME2(3) NULL
|
|
);
|
|
END;
|
|
|
|
IF OBJECT_ID(N'dbo.[FK_EventJudgeScoreAttachment_Sheet]','F') IS NULL
|
|
ALTER TABLE dbo.[EventJudgeScoreAttachment] WITH CHECK
|
|
ADD CONSTRAINT [FK_EventJudgeScoreAttachment_Sheet] FOREIGN KEY([ScoreSheetId]) REFERENCES dbo.[EventJudgeScoreSheet]([Id]);
|
|
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.[EventJudgeScoreAttachment]') AND name=N'UX_EventJudgeScoreAttachment_Idempotency')
|
|
CREATE UNIQUE NONCLUSTERED INDEX [UX_EventJudgeScoreAttachment_Idempotency] ON dbo.[EventJudgeScoreAttachment]([ScoreSheetId],[IdempotencyKey]);
|
|
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.[EventJudgeScoreAttachment]') AND name=N'UX_EventJudgeScoreAttachment_Current')
|
|
CREATE UNIQUE NONCLUSTERED INDEX [UX_EventJudgeScoreAttachment_Current] ON dbo.[EventJudgeScoreAttachment]([ScoreSheetId],[AttachmentType]) WHERE [IsCurrent]=1 AND [DeleteMark]=0;
|
|
|
|
COMMIT TRANSACTION;
|