我正在制作一个系统,让用户可以上传任何他们想要的文件,并且不使用它来执行任何类型的代码。作为其中的一部分,我会将每个文件重命名,并将其原始名称存储在MySQL表中。该表包含上传者的ID和上传的唯一ID。目前我是这样做的:
这意味着我将始终拥有唯一的用户ID和上传ID组合,每个用户的第一个上传ID为1。但是我想使用user_Id的外键,因此如果我删除一个用户,它的上传也会被删除。这意味着我必须在InnoDB中进行处理。由于上述设置仅在MyISAM中有效,所以我该怎么做呢?
我的用户表(从中获取user_id)如下:
我想要的是上传表格看起来像这样:
如果有意义的话
CREATE TABLE `uploads` (
`user_id` INT(11) NOT NULL,
`upload_id` INT(11) NOT NULL AUTO_INCREMENT,
`original_name` VARCHAR(30) NOT NULL,
`mime_type` VARCHAR(30) NOT NULL,
`name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`user_id`, `upload_id`)
) ENGINE=MyISAM;
这意味着我将始终拥有唯一的用户ID和上传ID组合,每个用户的第一个上传ID为1。但是我想使用user_Id的外键,因此如果我删除一个用户,它的上传也会被删除。这意味着我必须在InnoDB中进行处理。由于上述设置仅在MyISAM中有效,所以我该怎么做呢?
我的用户表(从中获取user_id)如下:
CREATE TABLE `".DATABASE."`.`users` (
`user_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`username` VARCHAR(30) NOT NULL,
`email` VARCHAR(50) NOT NULL,
`password` CHAR(128) NOT NULL,
`salt` CHAR(128) NOT NULL
) ENGINE = InnoDB;
我想要的是上传表格看起来像这样:
user_id | upload_id
1 | 1
1 | 2
2 | 1
2 | 2
2 | 3
1 | 3
如果有意义的话