Tất cả các bạn xử lý các mối quan hệ nhiều-nhiều trong IndexedDB như thế nào?Chỉ mụcDB và mối quan hệ nhiều-nhiều
Ví dụ: giả sử tôi có đối tượng Blog
để giữ bài đăng trên blog và đối tượng Tag
cho thẻ/nhãn của bài đăng trên blog. Một Blog
có thể có nhiều Tag
s và một Tag
có thể được nhiều người sử dụng Blog
s.
tôi sẽ tạo ra một blog store
và tag store
(mặc dù tôi mở để gợi ý) đến nhà hai loại đối tượng:
// ...
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});
Tắt tay tôi có thể nghĩ đến hai cách để liên kết hai:
- có một
Blog.tags
đó sẽ là một mảng củaBlogTag
đối tượng nắm giữblogId
vàtagId
(và cũng có thể sẽ là trong cửa hàng để thu hồi) hoặc - có một số
Blog.tags
sẽ là một mảngtagId
s có thể được sử dụng để tra cứu sốTag
s.
Cách đầu tiên có vẻ dài hơn nhưng đó là cách điều này sẽ được giải quyết trong SQL. Đó có phải là hành lý của SQL mà tôi nên bỏ lại không?
Tôi giả sử cách thứ 3 là có Blog.tags
là một mảng Tag
s. Điều này có vẻ đơn giản nhưng sau đó tôi không thể truy vấn các thẻ Tag
hoặc sử dụng lại trên blog (hoặc tôi có thể?).
Có ai khác đã xử lý tình huống như vậy với indexedDB không? Nếu vậy, bạn đã làm gì? Một số cạm bẫy là gì?