-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema.sql
More file actions
56 lines (47 loc) · 2.32 KB
/
schema.sql
File metadata and controls
56 lines (47 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
CREATE DATABASE roster_system;
USE roster_system;
CREATE TABLE IF NOT EXISTS roles (
id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
name VARCHAR(10) NOT NULL UNIQUE
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
CREATE TABLE IF NOT EXISTS users (
id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL,
userName VARCHAR(20) NOT NULL,
userEmail VARCHAR(255) NOT NULL,
userPwd VARCHAR(255) NOT NULL,
createdAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updatedAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
CREATE TABLE IF NOT EXISTS password_resets (
id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL,
userID INT(11) NOT NULL,
token VARCHAR(255) NOT NULL UNIQUE,
expiresAt DATETIME NOT NULL,
createdAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_pr_user FOREIGN KEY (userID) REFERENCES users (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
CREATE TABLE IF NOT EXISTS types (
id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
userID INT(11) NOT NULL,
type VARCHAR(255) NOT NULL UNIQUE,
bgColor VARCHAR(7) NOT NULL,
fontColor VARCHAR(7) NOT NULL,
createdAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updatedAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT fk_type_user FOREIGN KEY (userID) REFERENCES users (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
CREATE TABLE IF NOT EXISTS rosters (
id BIGINT PRIMARY KEY AUTO_INCREMENT NOT NULL,
userID INT(11) NOT NULL,
cycle INT(10) NOT NULL,
date DATE NOT NULL,
type VARCHAR(20) NULL,
remark TEXT,
createdAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updatedAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT fk_roster_user FOREIGN KEY (userID) REFERENCES users (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_roster_type FOREIGN KEY (type) REFERENCES types (type) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
INSERT INTO roles (name) VALUES ('admin'), ('customer');
--INSERT INTO rosters (userID, cycle, date, type, remark) VALUES (1, 444, '2025-05-20', 'RDO', '');
--SELECT cycle FROM rosters WHERE userID = 1 GROUP BY cycle;