Просто хотелось высказать свое мнение или, по крайней мере, эмпирическое правило, которое лучше в структуре базы данных для CouchDB. Что лучше: иметь все связанные данные для элемента в одном документе или иметь части всех элементов во многих документах?
Позвольте мне проиллюстрировать, что я имею в виду, на примере. В настоящее время я регистрирую 4 события из нашей системы с интервалом в 1 минуту, позвольте называть их event_1, event_2, event_3 и even_4. Данные сохраняются для каждого из 4 событий, независимо от значения (вы всегда получите значение, даже если все в порядке).
Вариант 1: Сгруппируйте события и добавьте новую временную метку / значения в документ ...
{
event_1: [
{ timestamp, value },
{ timestamp, value },
{ timestamp, value },
...etc
]
},
{
event_2: [
{ timestamp, value },
{ timestamp, value },
{ timestamp, value },
...etc
]
},
{
event_3: [
{ timestamp, value },
{ timestamp, value },
{ timestamp, value },
...etc
]
}
...etc
Вариант 2: Хранить огромный список документов с последними значениями (именно так они фактически доставляются из системы)?
{
timestamp: {
{ event_1, value },
{ event_2, value },
{ event_3, value },
{ event_4, value }
}
},
{
timestamp: {
{ event_1, value },
{ event_2, value },
{ event_3, value },
{ event_4, value }
}
},
{
timestamp: {
{ event_1, value },
{ event_2, value },
{ event_3, value },
{ event_4, value }
}
}
...etc
В настоящее время я использую второй вариант, но было просто любопытно узнать мнения людей о том, что можно было бы считать передовой практикой ... Я начинаю думать, что вариант 1 может быть лучше, поскольку в моем сообщении результаты сгруппированы по событию (показано на линейном графике каждого события ).