2

我的一个网站有很多用户。他们目前每个人都有一张个人资料照片。为了使事情保持快速和高效,我根据个人资料图像的独特性将其展开UserID,这样没有一个目录包含超过 1,000 个元素。

但是,现在我想让我的用户将更多图片上传到他们的个人资料中,但是当每个用户有多个图像时,我不知道如何组织和构建它。我显然会在他们当前唯一的文件夹下构建每个用户的相册,但是如何?

我是否使用数据库来跟踪每个用户拥有的图像数量?我是否确保每个文件从 1 到用户拥有的多个文件按顺序命名,并始终按该顺序显示它们(如果用户更改顺序,我只需按正确的顺序重命名它们)?还是我用其他方式来做?

我遇到的主要困难是了解和跟踪每个用户有多少图像(特别是如果他们删除了中间的一两个图像),它们的顺序(应该是可修改的),以及什么命名约定使用,同时保持快速、合乎逻辑和高效。

做这个的最好方式是什么?

4

1 回答 1

2

是的,使用数据库表,除了确认文件存在于任何位置之外,始终使用数据表来查找和组织图像。

用户添加文件:

  1. 上传文件
  2. 创建 UserID 和 microtime 的哈希
  3. 使用 hash.ext 写入磁盘
  4. 确认文件存在。
  5. 写入数据库、imageID (pk)、userID、path/to/image.jpg、时间戳

用户删除文件:

  1. 确认文件存在于磁盘上(查找基于 imageID 传递的位置)
  2. 使用从查询中选择的哈希删除文件(不要让他们传递文件名)
  3. 从数据库中删除行
于 2012-06-19T19:38:19.720 回答