【问题标题】:How to structure a database with Firebase如何使用 Firebase 构建数据库
【发布时间】:2018-05-25 18:03:27
【问题描述】:

我正在使用 Firebase 将数据存储在特定用户帐户下。我是相当新的后端工作,我主要是在开始打字之前寻找第二个选项。

这是我目前的结构:

Providers
    City
       Cincinnati 
          Company 1 
             Jobs
             History
          Company 2 
             Jobs 
             History
       Columbus 
          Company 1 
          Company 2 

我的想法是,当用户从该城市提出请求时,将每家公司列在特定城市节点中会更好。但是,如果城市在第一层,那么我们必须先穿过城市。但是,我们可以将城市存储在公司节点下,而不是将城市存储在更高级别,本质上是一个数组。

下面是用户流程:

用户根据他们的位置(城市)发出请求。提供者接受移动到“作业”节点的特定作业。一旦工作完成,它就会进入他们的“历史”节点。

我的问题:

我应该保持结构不变还是将城市放置在公司节点内?

【问题讨论】:

  • 个人经验我不推荐这种方法。如果您有一个包含城市作为属性的提供程序对象,它将为您省去很多麻烦。 Firebase 没有与 sql 语句相同的查询能力。使用您的架构实现工作产品是非常有可能的,但请记住,firebase 非常棒,因为您使用的是对象。现在您正在 oodb 中设计一个关系数据库。举个例子,你可以在这里工作,像你一样构建这个小设置,然后尝试从特定城市提取历史。希望这会有所帮助。

标签: database firebase


【解决方案1】:

你的结构是正确的,因为在这种情况下,城市是你的主键,因为公司有一个城市,你需要首先指定你想从中拉公司的城市,我认为这种结构是正确的方式去解决你的问题。如果您的父节点不是 City 而只是城市的名称,那么您最终会在主树中出现很多子节点,这就是您不想要的,您需要构建数据库以便在数据时使其可读够大了。

PS:考虑可伸缩性,如果你认为这样你最终会得到一个组织良好的数据库,现在你这样做没问题,但是如果你有其他疑问,那么考虑这样来改进你的结构。

【讨论】:

  • 很好的反馈!如果一家特定的公司在其他城市开展业务,您认为当前的方式是否具有可扩展性?他们的收费可能因城市而异。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
  • 2017-10-19
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
相关资源
最近更新 更多