这个NoSql模式正确吗?



我开始使用Firebase和NoSql,我想了解最佳实践,所以我尝试创建这个模式与订单,order_rows和文章。主要查询是显示特定的顺序,所以我创建如下:

    {
    "orders": {
        "1": {
            "date": "1/1/2016",
            "row_order": {
                "1": true,
                "2": true
            }
        },
        "2": {
            "date": "1/1/2016",
            "row_order": {
                "3": true
            }
        }
    },
    "articles": {
        "1": {
            "name": "a"
        },
        "2": {
            "name": "b"
        }
    },
    "row_orders": {
        "1": {
            "quantity": 7,
            "id_article": 1
        },
        "2": {
            "quantity": 2,
            "id_article": 2
        },
        "3": {
            "quantity": 4,
            "id_article": 2
        }
    }
}

当我必须显示订单号1时,我可以找到订单行,然后从行顺序检测商品。

我不使用经典的sql模式(row_orders与id_article和id_order)来简化get数据。

正确吗?或者How I can do?

没有办法说NoSQL数据结构是正确的。如果你想学习NoSQL,我建议你阅读关于结构化数据的Firebase文档,这篇关于NoSQL数据建模的文章,以及Firebase博客上的一些旧博客文章(比如这篇)。

数据结构中的一个直接问题是使用伪数组索引作为数据的键。这将导致一段困难的时间,因为Firebase将尝试将它们解释为实际的数组索引(这意味着您将返回一个具有空第一个元素的数组),并且它不能扩展到许多用户或可能离线的用户。在关于数组的博客文章中了解更多。

最新更新