22 lines
995 B
SQL
22 lines
995 B
SQL
-- Migration: Add project_users junction table for project team management
|
|
-- Created: 2025-11-21
|
|
-- Description: Allows many-to-many relationship between projects and users
|
|
|
|
-- Create project_users junction table
|
|
CREATE TABLE IF NOT EXISTS project_users (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
project_id UUID NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
|
|
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
role TEXT,
|
|
added_by UUID REFERENCES users(id) ON DELETE SET NULL,
|
|
added_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
CONSTRAINT project_user_unique UNIQUE(project_id, user_id)
|
|
);
|
|
|
|
-- Create indexes for better query performance
|
|
CREATE INDEX IF NOT EXISTS idx_project_users_project_id ON project_users(project_id);
|
|
CREATE INDEX IF NOT EXISTS idx_project_users_user_id ON project_users(user_id);
|
|
|
|
-- Add comment
|
|
COMMENT ON TABLE project_users IS 'Junction table for many-to-many relationship between projects and users (project team members)';
|