【问题标题】:Structure my database on Firebase with user data and product data使用用户数据和产品数据在 Firebase 上构建我的数据库
【发布时间】:2018-12-22 23:10:32
【问题描述】:

我正在做一个关于买卖东西的项目,就像一个市场。我在我的项目中使用 React 和 Firebase。

问题是构建数据库的最佳方式是什么: 问题: 我当前的数据库是:

 Root ---

      ---Users //data about the user: id, username, avatar, customer rating...
      ---SellData //include data about the Seller ads: title, price, description, image,...
      ---BuyData  //include data about the Buyer ads: title, price, description, image,...

然后,在我的主页上,我想显示一个列表项,每个项都有以下信息:用户名、头像、客户评分、标题、价格。所以它是用户和销售数据的结合。

我是否应该将更多用户数据添加到我的 Root/SellData 或 Root/BuyData 中,因为这些文件只包含产品信息,而不是用户信息?但是如果我这样做,我的数据库在扩展时会非常大。 我的情况有什么不同的解决方案吗?

【问题讨论】:

    标签: reactjs firebase


    【解决方案1】:

    在 NoSQL 世界中,您不应该害怕复制数据和非规范化数据模型。这是一篇关于 NoSQL 数据建模方法的“著名”帖子:https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/

    与其从纯粹的数据库优化角度(SQL 世界中的规范化)设计数据模型,不如在 NoSQL 世界中,从查询的角度考虑它,尽量减少给定屏幕的查询数量/用例。

    因此在SellDataBuyData 记录/节点中复制User 数据是完全有效的。这样,您将在一次查询中获得主页所需的所有信息。

    我不知道您使用的是哪个数据库,但要使不同的记录保持同步,您可以对 Realtime 数据库使用 update() 方法,或对 Firestore 使用 batched write

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多