使用查询性能的Firebase嵌套数据可维护性与过滤器相比?

时间:2017-02-21 21:20:48

标签: firebase firebase-realtime-database

围绕Firebase阅读并构建数据,一个不明确的问题是通过使用键嵌套或使用子键值查询来构建数据的最佳方法。所以我想知道权衡取舍的地方以及何时可以考虑其中一个?

举一个例子,想象一下你有'董事会'和'笔记'属于用户。注释只能属于一个板,您是否将注释嵌入板唯一键(选项A):

notes : {
    [unique userKey] : {
        [unique boardKey] : {
            [unique noteKey] : {
                ...
            },
            [unique noteKey] : {
                ...
            }
        }
    }
},
boards : {
    [unique userKey] : {
        [unique boardKey] : {
            ...
        }
    }
}

或者您是否使用子值作为关联/查询每个板的注释的方法(选项B):

notes : {
    [unique userKey] : {
        [unique noteKey] : {
            ...
            boardKey: [unique boardKey]
        },
        [unique noteKey] : {
            ...
            boardKey: [unique boardKey]
        }
    }
},
board : {
    [unique userKey] : {
        [unique boardKey] : {
            ...
        }
    }
}

第二个选项似乎更受欢迎according to Firebase

但是我的问题是,如果每块电路板上可能有数千个音符,这对于检索/订阅/编辑/删除等事项的带宽成本/性能而言更好 - 即:如果您想要更新或删除董事会的所有笔记,看起来选项A会更好,因为您正在处理更具体的数据树(notes / [unique boardKey] /),而不是查询所有游戏中的子密钥? / p>

我主要担心的是这两种不同方法的可维护性与性能。

欣赏任何想法。

0 个答案:

没有答案