0

我想为用户创建一个图片上传来上传个人资料图片并能够调整它的大小。但是,我想知道我应该如何做数据库表。我想我应该有一个用于用户 ID 和图像名称的字段,但是显然会有冲突,这让我想到了哈希表,这似乎有点矫枉过正,所以我想我会在这里问,希望有更多知识的人可以给我一些想法。

我正在使用 Zend Framework,供您参考。

4

2 回答 2

2

这可能不是您问题的确切答案。但是,它可以是一个建议。

如果要将图像或文件保留在数据库中,则必须维护很多东西。有很多讨论,您可以通过“数据库或文件夹中的图像”在 google 中搜索

我建议您将图像保存在文件夹中而不是数据库中。因此,在您的数据库中,您只需将图像的“路径”保留为一列。

换句话说,您的 USERS 表可以有一个列:

profile_image_path varchar2(200)

而不是将整个图像保留为

 profile_image blob

此解决方案的优点是:

  • 您可以让 Apache 将图像作为统计内容处理(如果您保存在数据库中,则可以将其视为动态内容)。
  • 您不必为如何在数据库中渲染图像而头疼,只需渲染为路径即可!
  • 您可以忘记在数据库中维护大数据(只需考虑数据库中 10,000 张图像的备份、导入、导出等)
  • ETC

此解决方案的缺点是:

  • 您必须与数据库分开维护备份。然而,这不是更多的工作,因为无论如何你都必须备份你的 php、文件等。

您可以在 google 中阅读更多详细信息。

于 2011-11-20T13:53:26.923 回答
0

一种简单的方法是在用户第一次上传图像时创建一个子文件夹(文件夹的名称也可以是用户 ID)。然后您可以将用户图像存储在他自己的子文件夹中。这样,您将避免很多碰撞问题。使用此解决方案,您可以拥有一个非常简单的表格,例如:

IMAGE (UserId, ImageName, IsMain)

ImageName 可以或不可以(按照您最喜欢的方式)包含子文件夹名称(因为它与 UserId 相同)。

于 2011-11-20T12:48:54.787 回答