34 lines
1.9 KiB
SQL
34 lines
1.9 KiB
SQL
-- Создание схемы, если не существует
|
|
CREATE SCHEMA IF NOT EXISTS uno_bff;
|
|
|
|
-- Таблица для хранения метаданных загруженных файлов пользователей
|
|
CREATE TABLE IF NOT EXISTS uno_bff.user_files (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
user_id UUID NOT NULL,
|
|
s3_key VARCHAR(512) NOT NULL,
|
|
original_filename VARCHAR(255) NOT NULL,
|
|
file_size BIGINT NOT NULL,
|
|
content_type VARCHAR(128) NOT NULL,
|
|
file_type VARCHAR(32) NOT NULL DEFAULT 'image', -- image, video
|
|
folder VARCHAR(64) NOT NULL DEFAULT 'images_input',
|
|
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT user_files_user_id_fk FOREIGN KEY (user_id) REFERENCES uno_bff.users(id) ON DELETE CASCADE
|
|
);
|
|
|
|
-- Индексы для ускорения поиска
|
|
CREATE INDEX IF NOT EXISTS idx_user_files_user_id ON uno_bff.user_files(user_id);
|
|
CREATE INDEX IF NOT EXISTS idx_user_files_s3_key ON uno_bff.user_files(s3_key);
|
|
CREATE INDEX IF NOT EXISTS idx_user_files_folder ON uno_bff.user_files(folder);
|
|
CREATE INDEX IF NOT EXISTS idx_user_files_created_at ON uno_bff.user_files(created_at DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_user_files_file_type ON uno_bff.user_files(file_type);
|
|
|
|
-- Комментарий
|
|
COMMENT ON TABLE uno_bff.user_files IS 'Метаданные загруженных файлов пользователей в S3';
|
|
COMMENT ON COLUMN uno_bff.user_files.user_id IS 'ID владельца файла (UUID)';
|
|
COMMENT ON COLUMN uno_bff.user_files.s3_key IS 'Путь к файлу в S3 хранилище';
|
|
COMMENT ON COLUMN uno_bff.user_files.original_filename IS 'Оригинальное имя файла';
|
|
COMMENT ON COLUMN uno_bff.user_files.file_type IS 'Тип файла: image, video';
|
|
COMMENT ON COLUMN uno_bff.user_files.folder IS 'Папка в S3 бакете (images_input, videos_input, etc.)';
|