【问题标题】:GridFS - product images & thumbnails - what is the best DB sctructure?GridFS - 产品图片和缩略图 - 最好的数据库结构是什么?
【发布时间】:2012-05-19 23:42:18
【问题描述】:

我有一个使用 MongoDB + GridFS 的电子商务网站。 每个产品最多可以有 5 张图片。 每张图片都有 3 个不同大小的缩略图。

为此,我需要关于最佳数据库结构的建议。

目前我正在考虑在每个产品中存储图像 ID 和拇指 ID(来自 GridFS 的 ID):

{
   '_id': 1, 
   'title': 'Some Product', 
   'images': [
               {'id': '11', thumbs: {'small': '22', 'medium': '33'},
               {'id': '44', thumbs: {'small': '55', 'medium': '66'}  
             ]
}

或者将路径存储在 GridFS 中会更好吗?

{
  '_id': '111',
  'filename': '1.jpg',
  'path': 'product/988/image/111/'
},
{
  '_id': '222',
  'filename': '1.jpg',
  'path': 'product/988/image/111/thumbnail_small'
},
{
  '_id': '333',
  'filename': '1.jpg',
  'path': 'product/988/image/111/thumbnail_large'
}

更新:GridFS 中的“路径”字段是“假”路径,而不是真实路径。只是一种快速查找所有相关文件的方法。拥有 1 个索引字段比使用复合索引的多个字段便宜。

【问题讨论】:

    标签: image mongodb thumbnails gridfs


    【解决方案1】:

    如果您要在 MongoDB 中使用 GridFS 存储图像,我会选择第一个。

    第二个架构似乎不正确。我的意思是 GridFS 应该存储文件,因此使用图像的 ID,您不需要这些文档中的任何路径。如果你只是想存储文件的路径,直接将它嵌入到你的主集合中,这样你就不需要这个有点无用的集合的开销。

    如果您真的应该将图像存储在 dbms 中,一般请参阅 Storing Images in DB - Yea or Nay?

    此外,如果您只保存路径,则可能几乎不需要更改,以防您切换到某些 CDN 以将图像提供给客户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-16
      • 2012-02-03
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多