2016-02-04 38 views
-1

我观看了很多firebase的非标准化结构,但无法找到像eBay或craigslist这样的大型网络应用的正确方法。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

存储数百万个项目是非常有效的操作。阅读或查询数百万项目不是。一切都取决于你想如何访问数据。请参阅本文以获取有关模式和注意事项的详细介绍:https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/ –

+0

如果您知道要获取哪个项目,那么这是一个简单的读取:'ref.child('items')。child(itemId')'。 –

+0

交叉帖子:https://groups.google.com/forum/#!topic/firebase-talk/qxF5d7eNFSE –

回答

1

如果你知道要获取的项目,你可以用一个简单的读得到它:

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

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

相关问题