¿Cómo están manejando relaciones muchos a muchos en IndexedDB?IndexedDB y muchas a muchas relaciones
Por ejemplo, supongamos que tengo un objeto Blog
para mantener una publicación de blog y un objeto Tag
para una etiqueta/etiqueta de la publicación de blog. Uno Blog
puede tener muchos Tag
sy uno Tag
puede ser usado por muchos Blog
s.
me gustaría crear un blog store
y tag store
(aunque estoy abierto a sugerencias) para albergar a los dos tipos de objetos:
// ...
var blogStore = db.createObjectStore("blog", {keyPath: "blogId", autoIncrement: true});
blogStore.createIndex("title", "title", {unique: true});
var tagStore = db.createObjectStore("tag", {keyPath: "tagId", autoIncrement: true});
tagStore.createIndex("label", "label", {unique: true});
Off mano que se me ocurren dos maneras de enlazar los dos:
- tienen una
Blog.tags
que sería una matriz deBlogTag
objetos que sostieneblogId
ytagId
(y también sería en la tienda para la recuperación) o - tiene un
Blog.tags
que sería una matriz detagId
s que podría utilizarse para buscarTag
s.
La primera forma parece más arriesgada, pero es cómo se abordaría en SQL. ¿Eso es solo un bagaje de SQL que debería dejar atrás?
Supongo que una tercera forma sería tener Blog.tags
ser una matriz de Tag
s. Esto parece más simple, pero luego no pude consultar Tag
o reutilizar las etiquetas en los blogs (¿o podría?).
¿Alguien más ha manejado tal situación con indexedDB? Si es así, ¿qué terminaste haciendo? ¿Cuáles fueron algunos escollos?