首页 > 解决方案 > 具有完整性的 NoSQL 关系

问题描述

我有一个 Firebase 实时数据库,其结构如下:

{
    product : {
        "book1" : {
            "name" : "LoTR",
            "category" : {
                "Fiction" : true
            }
        }
    }
    genre : {
        "Fiction" : {
            "name" : "Fiction",
            product : {
                "book1" : true
            }
        }
    }
}

我想知道是否还应该添加一个键键表,例如:

genre_product : {
    -3i9wfiosdniov : {
        "book1" : "Fiction"
    }
}

建立关系并使用$key : true完整性检查?一种使关系比另一种更好的方法还是仅仅通过用例?

标签: firebasefirebase-realtime-databasenosql

解决方案


Firebase 数据库没有关系的概念,因此也没有关系完整性的概念。任何此类概念都需要在您的(应用程序和服务器)代码以及数据库的服务器端安全规则中进行处理。

与 NoSQL 数据库设计中的往常一样,没有一种数据模型是最好的。这一切都取决于您的应用程序的用例。对于一个好的介绍,我建议阅读NoSQL 数据建模和观看Firebase for SQL 开发人员。我还建议查看我对Firebase和Firebase 查询中的多对多关系的答案,如果 child 的 child 包含 value


推荐阅读