30 lines
1.1 KiB
MySQL
30 lines
1.1 KiB
MySQL
|
|
CREATE TABLE files (
|
||
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
organization_id UUID NOT NULL,
|
||
|
|
user_id UUID NOT NULL,
|
||
|
|
file_name VARCHAR(255) NOT NULL,
|
||
|
|
original_name VARCHAR(255) NOT NULL,
|
||
|
|
file_url VARCHAR(500) NOT NULL,
|
||
|
|
file_size BIGINT NOT NULL,
|
||
|
|
mime_type VARCHAR(100) NOT NULL,
|
||
|
|
file_type VARCHAR(50) NOT NULL,
|
||
|
|
upload_path VARCHAR(500) NOT NULL,
|
||
|
|
is_public BOOLEAN DEFAULT TRUE,
|
||
|
|
metadata JSONB,
|
||
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
||
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Create indexes for better performance
|
||
|
|
CREATE INDEX idx_files_organization_id ON files(organization_id);
|
||
|
|
CREATE INDEX idx_files_user_id ON files(user_id);
|
||
|
|
CREATE INDEX idx_files_file_type ON files(file_type);
|
||
|
|
CREATE INDEX idx_files_created_at ON files(created_at);
|
||
|
|
|
||
|
|
-- Add foreign key constraints
|
||
|
|
ALTER TABLE files ADD CONSTRAINT fk_files_organization_id
|
||
|
|
FOREIGN KEY (organization_id) REFERENCES organizations(id) ON DELETE CASCADE;
|
||
|
|
|
||
|
|
ALTER TABLE files ADD CONSTRAINT fk_files_user_id
|
||
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
|