Untitled

mail@pastecode.io avatar
unknown
sqlserver
20 days ago
6.3 kB
1
Indexable
Never
---- DOMAIN 1: Liên quan tới các bảng chính để tổ chức được việc thi --
---- Bảng exercise -- câu hỏi
CREATE TABLE [dbo].[CMS_Question](
	[qId] [uniqueidentifier] NOT NULL,
	[qCode] [int] NULL,
	[qContent] [nvarchar](max) NULL,
	[qGroupId] [uniqueidentifier] NULL, --- group là topic 
	[qLevel] [int] NULL,
	[qSubGroup] [nvarchar](50) NULL, --- subgroup là các tag, danh sách group con
	[qName] [nvarchar](100) NULL,
	[qType] [int] NULL,
	[qStatus] [int] NULL,
	[qSolution] [nvarchar](max) NULL,
	[qHint] [nvarchar](max) NULL,
 CONSTRAINT [PK_CMS_Question] PRIMARY KEY CLUSTERED 
(
	[qId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Câu hỏi thuộc chủ đề nào' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CMS_Question', @level2type=N'COLUMN',@level2name=N'qGroupId'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'1:Dễ; 2:Trung bình;3:Khó' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CMS_Question', @level2type=N'COLUMN',@level2name=N'qLevel'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'chủ đề nhỏ trong chủ đề lớn' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CMS_Question', @level2type=N'COLUMN',@level2name=N'qSubGroup'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'1. ôn luyện; 2. Thi' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CMS_Question', @level2type=N'COLUMN',@level2name=N'qType'
GO


-------- Bảng exam -- tạo các ca thi (hoặc contest), tạo thông tin cơ bản của exam
CREATE TABLE [dbo].[CMS_Exam](
	[ExamId] [uniqueidentifier] NULL,
	[CreatedUser] [uniqueidentifier] NULL,
	[Created] [datetime] NULL,
	[StartTime] [datetime] NULL,
	[EndTime] [datetime] NULL,
	[ExamCode] [nvarchar](50) NULL,
	[Status] [int] NULL,
	[ExamTime] [int] NULL,
	[ExamType] [int] NULL,
 CONSTRAINT [PK_CMS_Exam] PRIMARY KEY CLUSTERED 
(
	[ExamId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

---- Không cần bảng examtopic --- đưa nó thành thuộc tính của exam_details (thay thế cho exam_exercise): bảng chi tiết thông tin cấu trúc đề thi/contest
CREATE TABLE [dbo].[CMS_ExamDetails](
	[ExamId] [uniqueidentifier] NOT NULL,
	[AttributeId] [uniqueidentifier] NULL,
	[QuestionId] [uniqueidentifier] NULL,
	[Status] [smallint] NULL,
	[Code] [nvarchar](50) NULL,
	[Value] [int] NULL,	--- có thể là giá trị của từng câu hỏi trong đề
	[OrderGroup] [smallint] NULL ---- đây chính là giá trị để phân biệt topic/câu -- đặt tên lại cho phù hợp cũng được
 CONSTRAINT [PK_CMS_ExamDetails] PRIMARY KEY CLUSTERED 
(
	[ExamId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'giá trị điểm' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'CMS_ExamDetails', @level2type=N'COLUMN',@level2name=N'Value'
GO

--- Bảng ExamUser thiết lập thông tin của các người dùng sẽ tham gia vào ca thi/contest tương ứng -- những ông nào mới thấy ca thi tương ứng của họ
CREATE TABLE [dbo].[CMS_ExamUser](
	[ExamUserId] [uniqueidentifier] NOT NULL,
	[ExamId] [uniqueidentifier] NULL,
	[UserName] [nvarchar](50) NULL, -- thay bằng UserID cũng được hoặc để nguyên là username
	[Status] [int] NULL,
	[Desc] [nvarchar](200) NULL,
 CONSTRAINT [PK_CMS_ExamShiftUser] PRIMARY KEY CLUSTERED 
(
	[ExamUserId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

---- Bảng ExamShift lưu trữ thông tin chi tiết của các ca thi tương ứng với đề thi ở trên (userid, examid, questionid, group...)
CREATE TABLE [dbo].[CMS_ExamShift](
	[ShiftId] [uniqueidentifier] NOT NULL,
	[ExamId] [uniqueidentifier] NULL,
	[QuestionId] [uniqueidentifier] NULL,
	[Alias] [nvarchar](50) NULL,
	[UserId] [uniqueidentifier] NULL,
	[Created] [datetime] NULL,
 CONSTRAINT [PK_CMS_ExamShift] PRIMARY KEY CLUSTERED 
(
	[ShiftId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO


--- DOMAIN 2: Liên quan tới quá trình thi bảng submission, bảng log, ...

CREATE TABLE [dbo].[CMS_Submission](
	[SubmisionID] [uniqueidentifier] NOT NULL,
	[ExamID] [uniqueidentifier] NULL,
	[Name] [nvarchar](500) NULL,
	[Src] [nvarchar](500) NULL,
	[Size] [int] NULL,
	[Type] [varchar](50) NULL,
	[Created] [datetime] NULL,
	[username] [nvarchar](100) NULL, --- userId --- tùy lựa chọn
	[status] [int] NULL,
	[Code] [int] NULL,
	[ClientInfo] [nvarchar](500) NULL,
	[path] [nvarchar](100) NULL,
	[Pass] [int] NULL,
	[TestInfo] [nvarchar](500) NULL,
	[QuestionId] [int] NULL,
 CONSTRAINT [PK__CMS_File__6F0F989F248554D5] PRIMARY KEY CLUSTERED 
(
	[SubmisionID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO


--- Bảng liên quan tới ghi lại log của người dùng trong quá trình thi

CREATE TABLE [dbo].[CMS_ExamLog](
	[pId] [int] IDENTITY(1,1) NOT NULL,
	[UserName] [nvarchar](50) NULL,
	[name] [nvarchar](50) NULL,
	[qId] [int] NULL,
	[status] [int] NULL,
	[created] [datetime] NULL,
	[clientInfo] [nvarchar](500) NULL,
	[processlog] [nvarchar](1000) NULL,
 CONSTRAINT [PK_CMS_Practice] PRIMARY KEY CLUSTERED 
(
	[pId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Leave a Comment