add backend
This commit is contained in:
54
backend/sql/mysql-init.sql
Normal file
54
backend/sql/mysql-init.sql
Normal file
@@ -0,0 +1,54 @@
|
||||
CREATE DATABASE IF NOT EXISTS yoyuzh_portal DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
USE yoyuzh_portal;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS portal_user (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
username VARCHAR(64) NOT NULL,
|
||||
email VARCHAR(128) NOT NULL,
|
||||
password_hash VARCHAR(255) NOT NULL,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT uk_portal_user_username UNIQUE (username),
|
||||
CONSTRAINT uk_portal_user_email UNIQUE (email)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS portal_file (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
user_id BIGINT NOT NULL,
|
||||
filename VARCHAR(255) NOT NULL,
|
||||
path VARCHAR(512) NOT NULL,
|
||||
storage_name VARCHAR(255) NOT NULL,
|
||||
content_type VARCHAR(255),
|
||||
size BIGINT NOT NULL,
|
||||
is_directory BIT NOT NULL DEFAULT b'0',
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT fk_portal_file_user FOREIGN KEY (user_id) REFERENCES portal_user (id),
|
||||
CONSTRAINT uk_portal_file_user_path_name UNIQUE (user_id, path, filename)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS portal_course (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
user_id BIGINT NOT NULL,
|
||||
course_name VARCHAR(255) NOT NULL,
|
||||
teacher VARCHAR(255),
|
||||
classroom VARCHAR(255),
|
||||
day_of_week INT,
|
||||
start_time INT,
|
||||
end_time INT,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT fk_portal_course_user FOREIGN KEY (user_id) REFERENCES portal_user (id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS portal_grade (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
user_id BIGINT NOT NULL,
|
||||
course_name VARCHAR(255) NOT NULL,
|
||||
grade DOUBLE NOT NULL,
|
||||
semester VARCHAR(64) NOT NULL,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT fk_portal_grade_user FOREIGN KEY (user_id) REFERENCES portal_user (id)
|
||||
);
|
||||
|
||||
CREATE INDEX idx_user_created_at ON portal_user (created_at);
|
||||
CREATE INDEX idx_file_created_at ON portal_file (created_at);
|
||||
CREATE INDEX idx_course_user_created ON portal_course (user_id, created_at);
|
||||
CREATE INDEX idx_grade_user_created ON portal_grade (user_id, created_at);
|
||||
46
backend/sql/opengauss-init.sql
Normal file
46
backend/sql/opengauss-init.sql
Normal file
@@ -0,0 +1,46 @@
|
||||
CREATE TABLE IF NOT EXISTS portal_user (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
username VARCHAR(64) NOT NULL UNIQUE,
|
||||
email VARCHAR(128) NOT NULL UNIQUE,
|
||||
password_hash VARCHAR(255) NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS portal_file (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL REFERENCES portal_user (id),
|
||||
filename VARCHAR(255) NOT NULL,
|
||||
path VARCHAR(512) NOT NULL,
|
||||
storage_name VARCHAR(255) NOT NULL,
|
||||
content_type VARCHAR(255),
|
||||
size BIGINT NOT NULL,
|
||||
is_directory BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT uk_portal_file_user_path_name UNIQUE (user_id, path, filename)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS portal_course (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL REFERENCES portal_user (id),
|
||||
course_name VARCHAR(255) NOT NULL,
|
||||
teacher VARCHAR(255),
|
||||
classroom VARCHAR(255),
|
||||
day_of_week INTEGER,
|
||||
start_time INTEGER,
|
||||
end_time INTEGER,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS portal_grade (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL REFERENCES portal_user (id),
|
||||
course_name VARCHAR(255) NOT NULL,
|
||||
grade DOUBLE PRECISION NOT NULL,
|
||||
semester VARCHAR(64) NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_user_created_at ON portal_user (created_at);
|
||||
CREATE INDEX IF NOT EXISTS idx_file_created_at ON portal_file (created_at);
|
||||
CREATE INDEX IF NOT EXISTS idx_course_user_created ON portal_course (user_id, created_at);
|
||||
CREATE INDEX IF NOT EXISTS idx_grade_user_created ON portal_grade (user_id, created_at);
|
||||
Reference in New Issue
Block a user