CREATE TABLE user_info ( id BIGINT PRIMARY KEY, seq_no SERIAL, -- 自增 account VARCHAR(255) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, email VARCHAR(255) UNIQUE, username VARCHAR(50), gender INT DEFAULT 0, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, active_time TIMESTAMP, last_login_time TIMESTAMP ); CREATE TABLE "user" ( "id" int8 NOT NULL, "username" varchar(255) NOT NULL , "avatar" varchar(255) NOT NULL , "status" int4 NOT NULL DEFAULT 1, "last_login_time" timestamptz(6), "create_time" timestamptz(6), "update_time" timestamptz(6) ); CREATE TABLE "user_oauth" ( "id" int8 NOT NULL, "user_id" int8 NOT NULL, "type" int4 NOT NULL, "openid" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, "create_time" timestamptz(6) NOT NULL, "update_time" timestamptz(6) NOT NULL ); CREATE TABLE money_record( id BIGINT PRIMARY KEY, category_id BIGINT NOT NULL, user_id BIGINT NOT NULL, amount NUMERIC(12,2) NOT NULL, remark VARCHAR(255) DEFAULT '', record_time DATE NOT NULL, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE money_sys_category( id BIGINT PRIMARY KEY , name VARCHAR(255) NOT NULL , icon VARCHAR(255) NOT NULL, type INT NOT NULL DEFAULT 0 , sort_number INT NOT NULL DEFAULT 0, create_time timestamp DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE money_user_category( id BIGINT PRIMARY KEY , user_id BIGINT NOT NULL, name VARCHAR(255) NOT NULL, icon VARCHAR(255) NOT NULL, type INT NOT NULL DEFAULT 0, sort_number INT NOT NULL DEFAULT 0, create_time timestamp DEFAULT CURRENT_TIMESTAMP ); -- 共享空间表 CREATE TABLE space ( id BIGSERIAL PRIMARY KEY, name VARCHAR(100) DEFAULT '', invite_code VARCHAR(30) NOT NULL, create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE space ADD CONSTRAINT space_invite_code_key UNIQUE (invite_code); -- 空间成员表(每个用户只能加入一个空间) CREATE TABLE space_member ( id BIGSERIAL PRIMARY KEY, space_id BIGINT NOT NULL, user_id BIGINT NOT NULL, role INT NOT NULL DEFAULT 2, join_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP );