mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 02:32:57 +00:00
upload
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
-- Create uploaded_files table to track all uploaded files
|
||||
CREATE TABLE IF NOT EXISTS uploaded_files (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
filename VARCHAR(255) NOT NULL,
|
||||
file_path VARCHAR(500) NOT NULL UNIQUE,
|
||||
file_url VARCHAR(500) NOT NULL,
|
||||
file_size BIGINT NOT NULL DEFAULT 0,
|
||||
mime_type VARCHAR(100),
|
||||
uploaded_by_id BIGINT REFERENCES users(id) ON DELETE SET NULL,
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at TIMESTAMP WITH TIME ZONE
|
||||
);
|
||||
|
||||
-- Create index for faster lookups
|
||||
CREATE INDEX IF NOT EXISTS idx_uploaded_files_file_path ON uploaded_files(file_path);
|
||||
CREATE INDEX IF NOT EXISTS idx_uploaded_files_uploaded_by ON uploaded_files(uploaded_by_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_uploaded_files_created_at ON uploaded_files(created_at);
|
||||
CREATE INDEX IF NOT EXISTS idx_uploaded_files_deleted_at ON uploaded_files(deleted_at);
|
||||
|
||||
-- Create file_usages table to track where files are used
|
||||
CREATE TABLE IF NOT EXISTS file_usages (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
file_id BIGINT NOT NULL REFERENCES uploaded_files(id) ON DELETE CASCADE,
|
||||
entity_type VARCHAR(100) NOT NULL, -- e.g., 'article', 'player', 'sponsor', 'event', 'contact', 'settings'
|
||||
entity_id BIGINT NOT NULL,
|
||||
field_name VARCHAR(100), -- e.g., 'image_url', 'logo_url', 'attachments'
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Create indexes for file usage tracking
|
||||
CREATE INDEX IF NOT EXISTS idx_file_usages_file_id ON file_usages(file_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_file_usages_entity ON file_usages(entity_type, entity_id);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_file_usages_unique ON file_usages(file_id, entity_type, entity_id, field_name);
|
||||
Reference in New Issue
Block a user