Files
brapi-java/schema/auth.sql
2026-05-28 11:56:17 +08:00

31 lines
1.1 KiB
SQL

CREATE TABLE "sys_users" (
"id" uuid NOT NULL DEFAULT gen_random_uuid(),
"account" character varying(100) NOT NULL,
"password_hash" text NOT NULL,
"name" character varying(100) NOT NULL,
"email" character varying(255) NOT NULL,
"phone" character varying(50) NULL,
"created_at" timestamptz NOT NULL DEFAULT now(),
"updated_at" timestamptz NOT NULL DEFAULT now(),
PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "ux_users_account" ON "sys_users" ("account");
CREATE UNIQUE INDEX "ux_users_email" ON "sys_users" ("email");
CREATE TABLE "user_sessions" (
"id" uuid NOT NULL DEFAULT gen_random_uuid(),
"user_id" uuid NOT NULL,
"jti" character varying(64) NOT NULL,
"token_hash" text NOT NULL,
"expires_at" timestamptz NOT NULL,
"revoked_at" timestamptz NULL,
"created_at" timestamptz NOT NULL DEFAULT now(),
"updated_at" timestamptz NOT NULL DEFAULT now(),
PRIMARY KEY ("id"),
CONSTRAINT "user_sessions_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "sys_users" ("id") ON DELETE CASCADE
);
CREATE UNIQUE INDEX "ux_user_sessions_jti" ON "user_sessions" ("jti");
CREATE INDEX "ix_user_sessions_user_id" ON "user_sessions" ("user_id");