У меня есть сайт электронной коммерции, работающий на MongoDB + GridFS. Каждый продукт может содержать до 5 изображений. Каждое изображение имеет 3 миниатюры разных размеров.GridFS - изображения продуктов и миниатюры - какая лучшая структура базы данных?
Мне нужен совет по наилучшей структуре БД для этого.
В настоящее время я имею в виду для хранения идентификаторов изображения, а также идентификаторы накатанной (идентификаторы из GridFS) в каждом продукте:
{
'_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'
}
UPDATE: "Путь" поле в GridFS является "подделка" путь, а не реальный. Просто быстрый способ найти все связанные файлы. Дешевле иметь 1 проиндексированное поле, чем несколько полей с составными индексами.