Я вижу два пути решения этой проблемы.
Первый будет идти третий нормальный вид -стиль - иметь одно хранилище объектов для хранения объектов данных, а другое для храненияотношения между ними.IndexedDB не поддерживает концепцию JOIN, поэтому вам все равно придется выполнить два обращения к базе данных, и при таком подходе каждое из двух хранилищ может иметь отдельные индексы (которые, так сказать, являются ключевыми).
Немного отступив, в зависимости от ваших потребностей, вы можете просто сохранить весь объект JS, используя простой подход ключ / значение.Я ничего не измерял, но мой инстинкт пока таков: если вы не имеете дело со средними объемами данных, вам не нужно разбираться со сложностями нормализации.
Отступив еще дальше, есливы на самом деле не индексируете, чем вам может не понадобиться IndexedDB.Если вы просто ищете местный магазин, попробуйте localStorage
.Он очень совместим с современными браузерами, а API намного проще.
var obj = { data_object_1: { 'incoming': [ 1, 2, 3 ], 'outgoing': [ 5, 6, 7 ] } };
localStorage.setItem( 'foobar', JSON.stringify( obj ) );
console.log( JSON.parse( getItem( 'foobar' ) ) );