用于性能与查询的Firebase数据结构

用于性能与查询的Firebase数据结构,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我在辩论数据结构。我有一个项目列表,可以是公共或每个用户。这是我的两个选择 //1 items: item1 { authorId: "system" } item2 { authorId: "user1" } //2 items: system item1 { } user1 item2 { } //3 items: item1 { } item2 { } user-items: sy

我在辩论数据结构。我有一个项目列表,可以是
公共
每个用户
。这是我的两个选择

//1
items: 
   item1 { authorId: "system"  }
    item2 { authorId: "user1"  }

//2
items: 
    system
          item1 {   }
    user1
          item2 {  }
//3
items: 
   item1 { }
   item2 { }

user-items: 
   system { items: {item1: true} }
   user1 {  items: {item2: true}  }
结构1

  • 难以质疑
  • 我不需要知道项目的类型就可以查询它(我只需要id)
结构2

  • 更容易查询
  • 可能有更好的表现
  • 我需要知道一个项目是公共的还是每个用户的,以便能够查询它
结构3

  • 更灵活
  • 需要多个查询来获取预期数据(获取用户项、获取项id,然后针对每个id获取项)

有什么建议吗?

要回答这个问题,您需要列出查询数据的方式,因为这是选择任何特定数据库结构的起点。我需要查询公共或每用户数据