我正在構建一個可以上傳一些靜態數據並需要一些建議的Web應用程序。數據庫設計和文件存儲服務器
開始時,我想使用內部磁盤,但是如果數據增長,我打算使用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
表......在files
表中創建一個字段server
,然後存儲子域名。然後應該將配置存儲在配置文件中。
是不是被過度工程化了一下?