Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 记录用户每月上传到web应用程序的最佳方式是什么?_Php_Mysql_Database Design_Upload_Size - Fatal编程技术网

Php 记录用户每月上传到web应用程序的最佳方式是什么?

Php 记录用户每月上传到web应用程序的最佳方式是什么?,php,mysql,database-design,upload,size,Php,Mysql,Database Design,Upload,Size,我们的web应用程序允许用户上传照片,它使用运行在Amazon EC2上的LAMP服务器上的PHP脚本处理图像上传,Amazon S3存储文件,以及用于记录图像数据(用户id、文件名、标记等)的MySQL数据库 我打算在数据库中有一个image_uploads表,每个月有一个列,每个用户有一行。这样我就可以跟踪上传的趋势。可能也有视频上传,所以我也会有一个视频上传表。此外,用户可能属于多个组,我希望跟踪每个组的每月上传量,因此可能还会有一个组上传表。这意味着,对于每个上传的文件,将有2个sql更

我们的web应用程序允许用户上传照片,它使用运行在Amazon EC2上的LAMP服务器上的PHP脚本处理图像上传,Amazon S3存储文件,以及用于记录图像数据(用户id、文件名、标记等)的MySQL数据库

我打算在数据库中有一个image_uploads表,每个月有一个列,每个用户有一行。这样我就可以跟踪上传的趋势。可能也有视频上传,所以我也会有一个视频上传表。此外,用户可能属于多个组,我希望跟踪每个组的每月上传量,因此可能还会有一个组上传表。这意味着,对于每个上传的文件,将有2个sql更新查询-更新图像上传和更新组上传

  • $filesize=$_文件['Filedata']['size']
  • 更新图像\上传设置数据\单位为\字节=(数据\单位为\字节+文件大小),其中月份=$当前\月份。。。(例如,我知道这不是正确的sql)
  • 或者,可以有一个长表记录每次上传的数据(日期、用户、大小、媒体)。这样,我就可以随时查询数据库中我想要的信息——例如每个用户的每月上传量=数据总和(单位:字节),其中用户=##,月份=当前月份

    这类任务的最佳实践是什么


    关于

    我会保留一个包含所有上传内容的主日志表,然后查询该表中您想要的日期:

    SELECT *
    FROM logs
    WHERE upload_date between to_date ('2003/01/01', 'yyyy/mm/dd')
    AND to_date ('2003/12/31', 'yyyy/mm/dd');
    

    请问您为什么需要一个单独的群组上传表

    为什么不创建一个具有如下模式的表:uploads(用户id、组id、文件名、类型、大小、日期)。其中,如果允许用户为自己上传文件(不与组关联),则“group_id”可以为NULL,“type”可以是“video”或“image”。如果您想添加其他文件类型(文档、mp3等),这种方法似乎更灵活一些

    使用此模式,对各种过滤器的查询(按用户、用户和非组、用户和组、按类型、按日期过滤)应该更简单

    希望有帮助