【发布时间】:2010-04-26 15:57:19
【问题描述】:
我们的 Web 应用程序允许用户上传照片,它使用运行在 Amazon EC2 上的 LAMP 服务器上的 PHP 脚本来处理图像上传,使用 Amazon S3 来存储文件,并使用 MySQL 数据库来记录有关图像的数据(用户 ID、文件名、标签等)。
我打算在数据库中有一个 image_uploads 表,其中每个月有一个列,每个用户有一个行。这样我就可以跟踪上传的趋势。也可能有视频上传,所以我也会有一个 video_uploads 表。此外,用户可能属于多个组,我想跟踪每个组的每月上传量,因此可能还会有一个 group_uploads 表。这意味着对于每个上传的文件,都会有 2 个 sql 更新查询 - 更新 image_uploads 和更新 group_uploads。
- $filesize = $_FILES['Filedata']['size'];
- UPDATE image_uploads SET data_in_bytes = (data_in_bytes + $filesize) WHERE month = $current_month ...(例如 - 我知道这不是正确的 sql)
或者,可以有一个长表来记录每次上传的数据(日期、用户、大小、媒体)。这样我就可以随时在数据库中查询我想要的信息 - 例如,每个用户的每月上传 = data_in_bytes 的总和 WHERE user = ## and month = currentMonth
此类任务的最佳做法是什么?
问候
【问题讨论】:
标签: php mysql database-design upload size