1
0
Files
coconut-leaf/backend/sql/sqlite.sql

67 lines
1.6 KiB
MySQL
Raw Normal View History

2021-01-16 22:15:10 +08:00
CREATE TABLE user(
2026-05-12 19:25:31 +08:00
[name] TEXT NOT NULL,
[password] TEXT NOT NULL,
[is_admin] TINYINT NOT NULL CHECK(is_admin = 1 OR is_admin = 0),
[salt] INTEGER NOT NULL,
2021-01-24 14:38:08 +08:00
2026-05-12 19:25:31 +08:00
PRIMARY KEY (name)
2021-01-24 14:38:08 +08:00
);
CREATE TABLE token(
2026-05-12 19:25:31 +08:00
[user] TEXT NOT NULL,
[token] TEXT UNIQUE NOT NULL,
[token_expire_on] BIGINT NOT NULL,
[ua] TEXT NOT NULL,
[ip] TEXT NOT NULL,
2021-01-16 22:15:10 +08:00
2026-05-12 19:25:31 +08:00
FOREIGN KEY (user) REFERENCES user(name) ON DELETE CASCADE
2021-01-16 22:15:10 +08:00
);
CREATE TABLE collection(
2026-05-12 19:25:31 +08:00
[uuid] TEXT NOT NULL,
[name] TEXT NOT NULL,
[user] TEXT NOT NULL,
[last_change] TEXT NOT NULL,
2021-01-16 22:15:10 +08:00
2026-05-12 19:25:31 +08:00
PRIMARY KEY (uuid),
FOREIGN KEY (user) REFERENCES user(name) ON DELETE CASCADE
2021-01-16 22:15:10 +08:00
);
CREATE TABLE share(
2026-05-12 19:25:31 +08:00
[uuid] TEXT NOT NULL,
[target] TEXT NOT NULL,
2021-01-16 22:15:10 +08:00
2026-05-12 19:25:31 +08:00
FOREIGN KEY (uuid) REFERENCES collection(uuid) ON DELETE CASCADE
FOREIGN KEY (target) REFERENCES user(name) ON DELETE CASCADE
2021-01-16 22:15:10 +08:00
);
CREATE TABLE calendar(
2026-05-12 19:25:31 +08:00
[uuid] TEXT NOT NULL,
[belong_to] TEXT NOT NULL,
2021-01-16 22:15:10 +08:00
2026-05-12 19:25:31 +08:00
[title] TEXT NOT NULL,
[description] TEXT NOT NULL,
[last_change] TEXT NOT NULL,
2021-01-16 22:15:10 +08:00
2026-05-12 19:25:31 +08:00
[event_date_time_start] BIGINT NOT NULL,
[event_date_time_end] BIGINT NOT NULL,
[timezone_offset] INT NOT NULL,
2021-01-16 22:15:10 +08:00
2026-05-12 19:25:31 +08:00
[loop_rules] TEXT NOT NULL,
[loop_date_time_start] BIGINT NOT NULL,
[loop_date_time_end] BIGINT NOT NULL,
2021-01-16 22:15:10 +08:00
2026-05-12 19:25:31 +08:00
PRIMARY KEY (uuid),
FOREIGN KEY (belong_to) REFERENCES collection(uuid) ON DELETE CASCADE
2021-01-16 22:15:10 +08:00
);
CREATE TABLE todo(
2026-05-12 19:25:31 +08:00
[uuid] TEXT NOT NULL,
[belong_to] TEXT NOT NULL,
2021-01-16 22:15:10 +08:00
2026-05-12 19:25:31 +08:00
[data] TEXT NOT NULL,
[last_change] TEXT NOT NULL,
2021-01-16 22:15:10 +08:00
2026-05-12 19:25:31 +08:00
PRIMARY KEY (uuid),
FOREIGN KEY (belong_to) REFERENCES user(name) ON DELETE CASCADE
2021-01-16 22:15:10 +08:00
);