Firebase 在NoSQL数据库中存储选项的最佳方式是什么?

Firebase 在NoSQL数据库中存储选项的最佳方式是什么?,firebase,firebase-realtime-database,nosql,Firebase,Firebase Realtime Database,Nosql,我有一个选项列表,允许我的用户从中选择,并允许他们选择多个选项。我想将其存储在Firebase db中,Firebase db是一个NoSQL db。我应该这样存储它: { "selection": { "option1": true, "option2": false, "option3": true } } { "selection": ["option1", "option3"] } 或者这样: { "selection": { "opt

我有一个选项列表,允许我的用户从中选择,并允许他们选择多个选项。我想将其存储在Firebase db中,Firebase db是一个NoSQL db。我应该这样存储它:

{
  "selection": {
    "option1": true,
    "option2": false,
    "option3": true
  }
}
{
  "selection": ["option1", "option3"]
}
或者这样:

{
  "selection": {
    "option1": true,
    "option2": false,
    "option3": true
  }
}
{
  "selection": ["option1", "option3"]
}
不管怎样,这样做的好处和坏处是什么

第二种方式:

在这里,您不必担心用户未选择的选项。您只存储用户同意的内容。这样,您的用户对象可以是最小的

另外,在这里你可以做方法1中所有可能的事情。与检查特定密钥是否存在一样,您可以使用arr.indexOf(“key”),如果>=0,则为YES,否则为NO

请注意,除非您以后想知道“创建对象时向用户提供了哪些选项?”;你可以走第二条路

否则,这两种方式都没有问题,只是一种将用户对象最小化的方式。就这样

第二种方式:

在这里,您不必担心用户未选择的选项。您只存储用户同意的内容。这样,您的用户对象可以是最小的

另外,在这里你可以做方法1中所有可能的事情。与检查特定密钥是否存在一样,您可以使用arr.indexOf(“key”),如果>=0,则为YES,否则为NO

请注意,除非您以后想知道“创建对象时向用户提供了哪些选项?”;你可以走第二条路

否则,这两种方式都没有问题,只是一种将用户对象最小化的方式。就这样