39 lines
1.3 KiB
SQL
39 lines
1.3 KiB
SQL
CREATE TABLE "users" (
|
|
"id" varchar NOT NULL PRIMARY KEY,
|
|
"username" varchar NOT NULL,
|
|
"hashed_password" varchar NOT NULL,
|
|
"email" varchar NOT NULL,
|
|
"created_at" timestamptz NOT NULL DEFAULT (now())
|
|
);
|
|
|
|
ALTER TABLE "users" ADD CONSTRAINT "username_key" UNIQUE ("username");
|
|
ALTER TABLE "users" ADD CONSTRAINT "email_key" UNIQUE ("email");
|
|
CREATE INDEX ON "users" ("username");
|
|
CREATE INDEX ON "users" ("email");
|
|
|
|
CREATE TABLE "videos" (
|
|
"id" varchar NOT NULL PRIMARY KEY,
|
|
"title" varchar NOT NULL,
|
|
"description" varchar NOT NULL,
|
|
"images" varchar NOT NULL,
|
|
"origin_link" varchar NOT NULL,
|
|
"play_link" varchar NOT NULL,
|
|
-- 100: 下架
|
|
-- 0: 添加视频
|
|
-- 1: 视频转码中
|
|
-- 2: 视频转码失败
|
|
-- 200: 视频正常显示播放
|
|
"status" int NOT NULL DEFAULT (0),
|
|
"is_deleted" boolean NOT NULL DEFAULT false, -- 删除
|
|
"user_id" varchar NOT NULL,
|
|
"create_at" timestamptz NOT NULL DEFAULT (now()),
|
|
"create_by" varchar NOT NULL,
|
|
"update_at" timestamptz NOT NULL DEFAULT('0001-01-01 00:00:00Z'),
|
|
"update_by" varchar NOT NULL DEFAULT ('')
|
|
);
|
|
|
|
ALTER TABLE "videos" ADD FOREIGN KEY ("user_id") REFERENCES "users" ("id");
|
|
CREATE INDEX ON "videos" ("status");
|
|
CREATE INDEX ON "videos" ("user_id", "status", "create_at");
|
|
CREATE INDEX ON "videos" ("title");
|
|
CREATE INDEX ON "videos" ("user_id", "title"); |