84 lines
3.5 KiB
MySQL
84 lines
3.5 KiB
MySQL
|
|
/* 小程序角色、裁判执裁报名、检录任务迁移。适用 SQL Server,可重复执行。 */
|
|||
|
|
|
|||
|
|
IF COL_LENGTH('dbo.AppUser', 'MiniProgramRole') IS NULL
|
|||
|
|
BEGIN
|
|||
|
|
ALTER TABLE dbo.AppUser ADD MiniProgramRole INT NOT NULL
|
|||
|
|
CONSTRAINT DF_AppUser_MiniProgramRole DEFAULT (1);
|
|||
|
|
END;
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
IF OBJECT_ID('dbo.RefereeApplication', 'U') IS NULL
|
|||
|
|
BEGIN
|
|||
|
|
CREATE TABLE dbo.RefereeApplication
|
|||
|
|
(
|
|||
|
|
Id BIGINT NOT NULL CONSTRAINT PK_RefereeApplication PRIMARY KEY,
|
|||
|
|
EventId BIGINT NOT NULL,
|
|||
|
|
RefereeUserId BIGINT NOT NULL,
|
|||
|
|
ApplicationStatus INT NOT NULL CONSTRAINT DF_RefereeApplication_ApplicationStatus DEFAULT (1),
|
|||
|
|
Remark NVARCHAR(512) NULL,
|
|||
|
|
Status INT NOT NULL CONSTRAINT DF_RefereeApplication_Status DEFAULT (1),
|
|||
|
|
DeleteMark BIT NOT NULL CONSTRAINT DF_RefereeApplication_DeleteMark DEFAULT (0),
|
|||
|
|
CreatedUserId BIGINT NOT NULL,
|
|||
|
|
CreatedTime DATETIME2 NOT NULL,
|
|||
|
|
UpdatedUserId BIGINT NULL,
|
|||
|
|
UpdatedTime DATETIME2 NULL
|
|||
|
|
);
|
|||
|
|
CREATE INDEX IX_RefereeApplication_User ON dbo.RefereeApplication (RefereeUserId, CreatedTime DESC);
|
|||
|
|
CREATE UNIQUE INDEX UX_RefereeApplication_Event_User_Active
|
|||
|
|
ON dbo.RefereeApplication (EventId, RefereeUserId)
|
|||
|
|
WHERE DeleteMark = 0 AND ApplicationStatus <> 4;
|
|||
|
|
END;
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
IF OBJECT_ID('dbo.CheckinTask', 'U') IS NULL
|
|||
|
|
BEGIN
|
|||
|
|
CREATE TABLE dbo.CheckinTask
|
|||
|
|
(
|
|||
|
|
Id BIGINT NOT NULL CONSTRAINT PK_CheckinTask PRIMARY KEY,
|
|||
|
|
EventId BIGINT NOT NULL,
|
|||
|
|
CheckerUserId BIGINT NULL,
|
|||
|
|
TotalRounds INT NOT NULL CONSTRAINT DF_CheckinTask_TotalRounds DEFAULT (1),
|
|||
|
|
CurrentRound INT NOT NULL CONSTRAINT DF_CheckinTask_CurrentRound DEFAULT (1),
|
|||
|
|
RoundName NVARCHAR(64) NOT NULL CONSTRAINT DF_CheckinTask_RoundName DEFAULT (N'赛前检录'),
|
|||
|
|
CurrentGroupId BIGINT NULL,
|
|||
|
|
CurrentGroupName NVARCHAR(128) NOT NULL CONSTRAINT DF_CheckinTask_CurrentGroupName DEFAULT (N''),
|
|||
|
|
GroupOrder INT NOT NULL CONSTRAINT DF_CheckinTask_GroupOrder DEFAULT (0),
|
|||
|
|
TotalGroups INT NOT NULL CONSTRAINT DF_CheckinTask_TotalGroups DEFAULT (0),
|
|||
|
|
NextGroupName NVARCHAR(128) NULL,
|
|||
|
|
Venue NVARCHAR(128) NULL,
|
|||
|
|
TaskStatus INT NOT NULL CONSTRAINT DF_CheckinTask_TaskStatus DEFAULT (0),
|
|||
|
|
Status INT NOT NULL CONSTRAINT DF_CheckinTask_Status DEFAULT (1),
|
|||
|
|
DeleteMark BIT NOT NULL CONSTRAINT DF_CheckinTask_DeleteMark DEFAULT (0),
|
|||
|
|
CreatedUserId BIGINT NOT NULL,
|
|||
|
|
CreatedTime DATETIME2 NOT NULL,
|
|||
|
|
UpdatedUserId BIGINT NULL,
|
|||
|
|
UpdatedTime DATETIME2 NULL
|
|||
|
|
);
|
|||
|
|
CREATE INDEX IX_CheckinTask_Checker_Status ON dbo.CheckinTask (CheckerUserId, TaskStatus, UpdatedTime DESC);
|
|||
|
|
END;
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
IF OBJECT_ID('dbo.CheckinRecord', 'U') IS NULL
|
|||
|
|
BEGIN
|
|||
|
|
CREATE TABLE dbo.CheckinRecord
|
|||
|
|
(
|
|||
|
|
Id BIGINT NOT NULL CONSTRAINT PK_CheckinRecord PRIMARY KEY,
|
|||
|
|
TaskId BIGINT NOT NULL,
|
|||
|
|
Round INT NOT NULL,
|
|||
|
|
GroupId BIGINT NULL,
|
|||
|
|
RegistrationPersonId BIGINT NOT NULL,
|
|||
|
|
CheckerUserId BIGINT NOT NULL,
|
|||
|
|
Checked BIT NOT NULL CONSTRAINT DF_CheckinRecord_Checked DEFAULT (0),
|
|||
|
|
CheckedTime DATETIME2 NULL,
|
|||
|
|
DeleteMark BIT NOT NULL CONSTRAINT DF_CheckinRecord_DeleteMark DEFAULT (0),
|
|||
|
|
CreatedUserId BIGINT NOT NULL,
|
|||
|
|
CreatedTime DATETIME2 NOT NULL,
|
|||
|
|
UpdatedUserId BIGINT NULL,
|
|||
|
|
UpdatedTime DATETIME2 NULL
|
|||
|
|
);
|
|||
|
|
CREATE UNIQUE INDEX UX_CheckinRecord_Task_Round_Person_Active
|
|||
|
|
ON dbo.CheckinRecord (TaskId, Round, RegistrationPersonId)
|
|||
|
|
WHERE DeleteMark = 0;
|
|||
|
|
END;
|
|||
|
|
GO
|