比方说,我在博客中有一个文章列表。每篇文章都有一个图像,每个图像都有一个缩略图。
当显示文章列表时,每个文章都会显示缩略图;当显示单篇文章时,它将以完整尺寸的图像显示。
这意味着每篇文章都有三个大的(未知大小)数据项:图像,缩略图和文本。
这些设计的优点和缺点是什么:
(我还没考虑过吗?)
如果它有所作为,我认为不应该,那么该网站将使用Postgres或MySql以Ruby / Rails编写。
答案 0 :(得分:1)
IMO,选项5是最好的。仅仅因为您可以将图像存储在数据库中,并不意味着您应该这样做。存储文件位置以及有关DB中图像的任何元数据。将图像存储在文件系统中。
将图像存储在数据库中的“缺点”是,您最终会通过箍跳实际使用应用中的图像。几乎任何库,脚本,附加组件等都可以使用您的图像,如果它们在没有任何特殊编码的目录中。将它们放在数据库中,您需要编写代码才能提供使用它们的权限。
我能看到的唯一好处是在webfarm环境中,多个Web服务器使用单个(或复制的数据库),图片将自动提供给所有Web服务器,数据和图像可以一次备份
IMO,利弊远远超过使用数据库存储图像的专业人士。
答案 1 :(得分:0)
如果我理解正确,数据库已经自动处理大字段分离为单独的“表”,具体取决于字段的数据类型和大小。谷歌的“行外存储”或类似的东西。也可能有这样的设置。
这意味着您不必自己为大字段创建单独的表。
至于存储在磁盘而不是db我不知道。我认为这个问题之前已被问过很多次了。