ether-docs/_archive/08-DATABASE/permission-user-project.sql

24 lines
1007 B
SQL

-- RBAC权限扩展 - user_project表
-- Date: 2026-03-21
-- Purpose: 支持用户多项目参与
-- 创建用户-项目关联表
CREATE TABLE IF NOT EXISTS user_project (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL,
project_id UUID NOT NULL,
role_in_project VARCHAR(50) NOT NULL DEFAULT 'member',
joined_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT uk_user_project UNIQUE(user_id, project_id),
CONSTRAINT fk_up_user FOREIGN KEY (user_id) REFERENCES auth_user(id) ON DELETE CASCADE,
CONSTRAINT fk_up_project FOREIGN KEY (project_id) REFERENCES mdm_project(id) ON DELETE CASCADE
);
-- 创建索引
CREATE INDEX IF NOT EXISTS idx_up_user ON user_project(user_id);
CREATE INDEX IF NOT EXISTS idx_up_project ON user_project(project_id);
-- 注释
COMMENT ON TABLE user_project IS '用户-项目关联表,支持用户参与多个项目';
COMMENT ON COLUMN user_project.role_in_project IS '在项目中的角色: leader/member/viewer';