适用于ebay或craigslist的Firebase结构,如网站

时间:2016-02-04 20:31:20

标签: firebase firebase-realtime-database angularfire nosql

我为firebase观看了很多非规范化结构,但无法为ebay或craigslist这样的大型网络应用找到正确的方法。

如果你以ebay或craigslist为例。如何建立数千/数百万项目/类别的效率结构?

这是正确的方法吗?

"users":{
    $userID: {
    ...
    }
},
"categories": {
    $categoryID (01): {
        "name": "computers"
        "subcategories": {
            $subCatID: {
            "name": "apple"
            }
        }
    },
    $categoryID (02): {
        "name": clothes
        ...
    }
},
"items": {
    $id: {
        "name": "iMac 27",
        "category": {
            $categoryID
            $subCatID
            ....
        },
        "seller": $userID,
        ...
    }  
}

我不明白的是,如果您想获得特定商品,是否需要从"商品中下载所有商品"树先?这会导致数百万项的性能问题吗?

非常感谢你的帮助。 斯蒂芬

1 个答案:

答案 0 :(得分:1)

如果您知道要获得哪个项目,可以通过简单的阅读获得:

ref.child('items').child(itemId')

这直接访问子进程并且不要求数据库考虑所有项目,也不要求客户端下载所有项目。数据库只是直接从磁盘加载正确的项目,并仅将该项目返回给客户端。