Есть ли разница в производительности, если у вас есть массив в наборе данных (tags
), например:
кластер изображений:
{
_id: 'imageID1',
title: 'some title name',
tags: ['cool', 'banana', 'animal']
},
{
_id: 'imageID2',
title: 'some other title name',
tags: ['funny', 'creative', 'animal']
}
против разделения массива на разные кластеры ? (Я использую mongodb в качестве базы данных)
кластер изображений:
{
_id: 'imageID1',
title: 'some title name',
tagsId: 'imageID1tags'
},
{
_id: 'imageID2',
title: 'some other title name',
tagsId: 'imageID2tags'
}
Кластер тегов:
{
_id: '1',
imagesId: 'imageID1',
tag: 'cool'
},
{
_id: '2',
imagesId: 'imageID1',
tag: 'banana'
},
{
_id: '3',
imagesId: 'imageID1',
tag: 'animal'
},
{
_id: '4',
imagesId: 'imageID2',
tag: 'funny'
},
{
_id: '5',
imagesId: 'imageID2',
tag: 'creative'
},
{
_id: '6',
imagesId: 'imageID2',
tag: 'animal'
},
Просто примечание: вы можете видеть (например, цели), у меня есть 2 данных о животных, из которых 1 принадлежит imageID1
, а другой imageID2
. Этот кластер будет иметь бесконечное количество тегов, где он может быть повторяющимся именем, уникальным для его imagesId
.
. Поэтому имеет смысл просто упростить его (с точки зрения масштабируемости и производительности) и поместить его в кластер изображений (всего 1 кластер данных) или разложить его (имея 2 кластера данных)? В конечном итоге я хочу выполнить поиск по тегам, и затем будут заполнены изображения, связанные с поисковым тегом.
Поэтому, если пользователь выполняет поиск animal
, оба изображения будут отображаться.