feat: uniq tenant_users

This commit is contained in:
Rogee
2024-12-02 11:29:15 +08:00
parent d1a2a80859
commit 2b4cfb1a1e
7 changed files with 198 additions and 37 deletions

View File

@@ -4,16 +4,15 @@
CREATE TABLE
users (
id SERIAL8 PRIMARY KEY,
open_id VARCHAR(128) NOT NULL,
union_id VARCHAR(128),
oauth jsonb ,
open_id VARCHAR(128) NOT NULL UNIQUE,
union_id VARCHAR(128) ,
oauth jsonb default '{}'::jsonb,
expire_in timestamp NOT NULL,
created_at timestamp NOT NULL,
updated_at timestamp NOT NULL
created_at timestamp NOT NULL default now(),
updated_at timestamp NOT NULL default now()
);
CREATE INDEX idx_users_open_id ON users (open_id);
CREATE INDEX idx_users_union_id ON users (union_id);
-- table tenants
@@ -24,8 +23,8 @@ CREATE TABLE
slug VARCHAR(128) NOT NULL,
description VARCHAR(128),
expire_at timestamp NOT NULL,
created_at timestamp NOT NULL,
updated_at timestamp NOT NULL
created_at timestamp NOT NULL default now(),
updated_at timestamp NOT NULL default now()
);
-- table users_tenants
@@ -34,11 +33,13 @@ CREATE TABLE
id SERIAL8 PRIMARY KEY,
user_id INT8 NOT NULL,
tenant_id INT8 NOT NULL,
created_at timestamp NOT NULL
created_at timestamp NOT NULL default now()
);
CREATE INDEX idx_users_tenants_user_id ON users_tenants (user_id);
CREATE INDEX idx_users_tenants_tenant_id ON users_tenants (tenant_id);
-- uniq user_id, tenant_id
CREATE UNIQUE INDEX idx_users_tenants_user_id_tenant_id ON users_tenants (user_id, tenant_id);
CREATE TABLE tenant_user_balances (
id SERIAL8 PRIMARY KEY,
@@ -56,9 +57,9 @@ CREATE TABLE user_balance_histories (
user_id INT8 NOT NULL,
tenant_id INT8 NOT NULL,
balance INT8 NOT NULL,
target jsonb ,
target jsonb default '{}'::jsonb,
type VARCHAR(128) NOT NULL, -- charge, consume, refund
created_at timestamp NOT NULL
created_at timestamp NOT NULL default now()
);
CREATE INDEX idx_user_balance_histories_user_id ON user_balance_histories (user_id);
CREATE INDEX idx_user_balance_histories_tenant_id ON user_balance_histories (tenant_id);
@@ -73,8 +74,8 @@ CREATE TABLE
price INT8 NOT NULL,
discount INT8 NOT NULL,
publish BOOL NOT NULL,
created_at timestamp NOT NULL,
updated_at timestamp NOT NULL
created_at timestamp NOT NULL default now(),
updated_at timestamp NOT NULL default now()
);
CREATE INDEX idx_medias_tenant_id ON medias (tenant_id);
@@ -86,11 +87,11 @@ CREATE TABLE
id SERIAL8 PRIMARY KEY,
media_id INT8 NOT NULL,
type VARCHAR(128) NOT NULL,
source jsonb ,
source jsonb default '{}'::jsonb,
size INT8 NOT NULL,
publish BOOL NOT NULL,
created_at timestamp NOT NULL,
updated_at timestamp NOT NULL
created_at timestamp NOT NULL default now(),
updated_at timestamp NOT NULL default now()
);
CREATE INDEX idx_media_resources_media_id ON media_resources (media_id);
@@ -101,7 +102,7 @@ CREATE TABLE user_medias (
tenant_id INT8 NOT NULL,
media_id INT8 NOT NULL,
price INT8 NOT NULL,
created_at timestamp NOT NULL
created_at timestamp NOT NULL default now()
);
CREATE INDEX idx_user_medias_user_id ON user_medias (user_id);