Skip to content

MaMinky/MeetPlatform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CREATE DATABASE MEET; GO USE MEET; GO

-- 1. Bảng USERS (Tài khoản chung) CREATE TABLE Users ( UserID INT PRIMARY KEY NOT NULL IDENTITY(1,1), Email VARCHAR(255) NOT NULL UNIQUE, PasswordHash VARCHAR(255) NOT NULL, FullName NVARCHAR(255) NULL, PhoneNumber VARCHAR(20) NULL, DateCreated DATETIME NOT NULL );

-- 2. Bảng CLASSES (Lớp học) CREATE TABLE Classes ( ClassID INT PRIMARY KEY NOT NULL IDENTITY(1,1), ClassName NVARCHAR(255) NOT NULL, ClassCode VARCHAR(50) NOT NULL UNIQUE, Subject NVARCHAR(100) NULL, Room NVARCHAR(50) NULL, TeacherID INT NOT NULL, -- Người tạo/quản lý lớp Description NVARCHAR(MAX) NULL,

FOREIGN KEY (TeacherID) REFERENCES Users(UserID)

);

-- 3. Bảng ENROLLMENTS (Đăng ký + Role trong lớp) CREATE TABLE Enrollments ( EnrollmentID INT PRIMARY KEY NOT NULL IDENTITY(1,1), ClassID INT NOT NULL, UserID INT NOT NULL, Role NVARCHAR(50) NOT NULL DEFAULT 'Student', -- 'Teacher', 'Student', 'Assistant'... EnrollmentDate DATETIME NOT NULL, IsActive BIT NOT NULL, -- 1: Đang học, 0: Đã rời lớp

FOREIGN KEY (ClassID) REFERENCES Classes(ClassID),
FOREIGN KEY (UserID) REFERENCES Users(UserID),
UNIQUE (ClassID, UserID) -- Một user chỉ tham gia 1 lần mỗi lớp

);

-- 4. Bảng ASSIGNMENTS (Bài tập) CREATE TABLE Assignments ( AssignmentID INT PRIMARY KEY NOT NULL IDENTITY(1,1), ClassID INT NOT NULL, Title NVARCHAR(255) NOT NULL, Instructions NVARCHAR(MAX) NULL, DueDate DATETIME NULL, MaxPoints INT NULL, DatePosted DATETIME NOT NULL,

FOREIGN KEY (ClassID) REFERENCES Classes(ClassID)

);

-- 5. Bảng MESSAGES (Tin nhắn - lưu lịch sử chat) CREATE TABLE Messages ( MessageID INT PRIMARY KEY NOT NULL IDENTITY(1,1), SenderID INT NOT NULL, ReceiverID INT NULL, -- Chat cá nhân ClassID INT NULL, -- Chat trong lớp học Content NVARCHAR(MAX) NULL, Timestamp DATETIME NOT NULL, IsRead BIT NOT NULL,

FOREIGN KEY (SenderID) REFERENCES Users(UserID),
FOREIGN KEY (ReceiverID) REFERENCES Users(UserID),
FOREIGN KEY (ClassID) REFERENCES Classes(ClassID)

);

-- 6. Bảng ATTACHMENTS (File đính kèm tin nhắn) CREATE TABLE Attachments ( AttachmentID INT PRIMARY KEY NOT NULL IDENTITY(1,1), MessageID INT NOT NULL, FileName NVARCHAR(255) NOT NULL, FilePath VARCHAR(500) NOT NULL, FileSizeKB INT NULL, FileType VARCHAR(50) NULL,

FOREIGN KEY (MessageID) REFERENCES Messages(MessageID)

);

-- 7. Bảng VIDEOCALLS (Lịch sử gọi video) CREATE TABLE VideoCalls ( CallID INT PRIMARY KEY NOT NULL IDENTITY(1,1), HostID INT NOT NULL, ClassID INT NULL, StartTime DATETIME NOT NULL, EndTime DATETIME NULL, DurationSeconds INT NULL, MeetingLink VARCHAR(500) NULL,

FOREIGN KEY (HostID) REFERENCES Users(UserID),
FOREIGN KEY (ClassID) REFERENCES Classes(ClassID)

);

-- 8. Bảng FRIENDSHIPS (Quan hệ bạn bè) CREATE TABLE Friendships ( FriendshipID INT PRIMARY KEY NOT NULL IDENTITY(1,1), User1ID INT NOT NULL, User2ID INT NOT NULL, Status VARCHAR(50) NOT NULL, -- 'Pending', 'Accepted', 'Blocked' ActionUserID INT NOT NULL, DateEstablished DATETIME NULL,

FOREIGN KEY (User1ID) REFERENCES Users(UserID),
FOREIGN KEY (User2ID) REFERENCES Users(UserID),
FOREIGN KEY (ActionUserID) REFERENCES Users(UserID),
UNIQUE (User1ID, User2ID) -- Không có quan hệ trùng

);

About

Code di dung choi nua

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors