我是Firebase和NoSQL的新手,来自SQL背景。我想知道存储数据的最佳方式是什么:
有4个类别,在每个类别中,有3个子类别。对于每个子类别,有一个大约10-20个问题的列表,我需要能够从用户每次请求(随机)中选择5个。
我最初只是想把SQL的设计转移到NoSQL中,但是我不确定这是否违背了NoSQL的目的
我想知道这样的解决方案是否可行,通过在子类别下的每个类别下存储10-20个问题的列表:
"questions": {
"category_one": {
"subcategory_one": ["question_one", "question_two",...],
"subcategory_two": ["question_one", "question_two",...],
"subcategory_three": ["question_one", "question_two",...],
},
"category_two": {
"subcategory_one": ["question_one", "question_two",...],
"subcategory_two": ["question_one", "question_two",...],
"subcategory_three": ["question_one", "question_two",...],
},
.
.
}
以这种方式存储它是否允许我高效地查询和检索所需的数据?
我想到的第一种方法就像一个SQL数据库,其中每个问题都是自己的JSON对象。
"1": {
"category": "1",
"subcategory": "1",
"question": "...",
},
"2": {
"category": "1",
"subcategory": "1",
"question": "...",
},
(我觉得这样更糟……)
1条答案
按热度按时间bzzcjhmw1#
根据你最后的评论:
最少8个,最多20个左右。
如果您在特定类别和子类别下总是有8到20个问题,那么您必须创建一个引用,精确指向您想要阅读问题的类别/子类别:
现在要获得5个随机问题,那么我建议您使用以下帖子中的解决方案:
How to get unique random product in node Firebase?
回答你的问题:
以这种方式存储它是否允许我高效地查询和检索所需的数据?
是的,这是一个可以查询以返回所需结果的结构。