Я создаю веб-приложение с возможностью загрузки статических данных, и мне нужны советы.
Вначале я хотел бы использовать внутренний диск, однако, если данные будут расти, я планирую использовать Amazon S3 в качестве хранилища файлов, я предполагаю, что мне понадобится несколько контейнеров для хранения файлов - возможно, я буду использовать какой-то другой CDN провайдеры.
Также у меня есть следующая структура базы данных:
CREATE TABLE IF NOT EXISTS `storage_servers` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NOT NULL ,
`ip` INT(20) NOT NULL ,
`access_url` LONGTEXT NULL DEFAULT NULL , // storing server access URL
`username` LONGTEXT NULL DEFAULT NULL , //storing server username
`password` LONGTEXT NULL DEFAULT NULL , // storing server password
`token` LONGTEXT NULL DEFAULT NULL , // storing server access token, if any
PRIMARY KEY (`id`) )
ENGINE = InnoDB;'
CREATE TABLE IF NOT EXISTS .`storage_servers_files` (
`server_id` INT NOT NULL ,
`file_id` BIGINT(25) NOT NULL ,
INDEX `fk_servers_files_1` (`file_id` ASC) ,
INDEX `fk_servers_files_2` (`server_id` ASC) ,
CONSTRAINT `fk_servers_files_1`
FOREIGN KEY (`file_id` )
REFERENCES `files` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_servers_files_2`
FOREIGN KEY (`server_id` )
REFERENCES `storage_servers` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Однако я не пользователь, если мой подход справедлив в этом вопросе.
Насколько я знаю, мне нужно было создавать субдомены для каждого отдельного контейнера хранения (cdn1.example.com, cdn2.example.com ... cdn15.example.com). Как бы вы разработали таблицы для этого?
Еще одна мысль заключалась в том, чтобы полностью удалить таблицы storage_servers
и storage_servers_files
и просто ... создать поле server
в таблице files
и затем сохранить имя субдомена. Конфигурация затем должна быть сохранена в файле конфигурации.
Разве это не слишком сильно?