0

例如,假设我在博客中有一个文章列表。每篇文章都有一张图片,每张图片都有一个缩略图。

显示文章列表时,每篇文章都会显示缩略图;显示单篇文章时,将以全尺寸图像显示。

这意味着我在每篇文章中都有三个大(未知大小)数据项:图像、缩略图和文本。

这些设计的优缺点是什么:

  1. 文章表包括缩略图列和图像列
  2. 文章表包括缩略图列,图像存储在单独的表中
  3. 缩略图和图像存储在一个单独的表中
  4. 缩略图和图像存储在各自单独的表中
  5. 站点对存储图像和缩略图的文件夹具有写入权限,数据库包含 URL/文件名

(任何我没有考虑过的?)

如果它有所作为,我认为它不应该,该站点将使用 Postgres 或 MySql 用 Ruby/Rails 编写。

4

2 回答 2

1

IMO,选项 5 是最好的。仅仅因为您可以将图像存储在数据库中,并不意味着您应该这样做。将文件位置以及有关图像的任何元数据存储在数据库中。将图像存储在文件系统中。

将图像存储在数据库中的“缺点”是您最终会跳过箍以实际使用应用程序中的图像。几乎任何库、脚本、附加组件等都可以使用您的图像,如果它们位于一个没有任何特殊编码的目录中。将它们放在数据库中,您需要编写代码才能提供使用它们的访问权限。

我能看到的唯一好处是在多个 web 服务器使用单个(或复制数据库)的 webfarm 环境中,图片将自动可供所有 web 服务器使用,并且可以一次备份数据和图像。

IMO,缺点远远超过使用数据库存储图像的专业人士。

于 2011-07-31T12:37:06.250 回答
0

如果我理解正确,数据库已经根据字段的数据类型和大小自动处理将大字段分成单独的“表”。谷歌“行外存储”或类似的东西。也可能有此设置。

这意味着您不必自己为大字段创建单独的表。

至于存储在磁盘上而不是数据库上,我不知道。我想这个问题已经被问过很多次了。

于 2011-07-31T12:25:50.390 回答