作为最终结果,我的目标是让用户能够输入文本框之类的内容,并在用户输入字母时显示各种选项。
例如,用户可以开始键入一个名称,例如Jam
,在最近的建议下方,例如、James
等会出现。
我知道如果我使用 SQL可以完成这项工作(尽管我猜用户必须停止编写才能执行查询;所以用户在键入时实际上看不到建议。对吧?)。
但就我的范围而言,我不需要使用 RDBMS,因为数据很小并且它们之间没有真正的关系。Jameson
Jamie
SELECT LIKE %Jam%
我想过使用一些 NoSQL 解决方案,以便研究这项技术(以前从未使用过),但在这种情况下,我不确定如何处理这样的设计。
我应该建立一个树来预加载存储中的所有数据吗?所以我在内存和存储中都有数据?但是,如果我使用 NoSQL 解决方案,那通常不是在内存中吗?所以我在内存中有两次相同的数据?
关于如何解决这样的问题的任何帮助?
问问题
110 次
2 回答
0
根据您对原始问题的评论,我认为您的目标存在冲突。
如果你想边做边学,你就有重新发明轮子的风险。您还冒着尝试重新发明轮子的风险,但结果却是一个不会滚动的方形轮子。
这不一定是坏事。您可以通过这种方式学到很多东西,但是这种学习方式与您的以下陈述相冲突。
...我仍然不确定我应该如何不重新实现事物并遵循标准方法。例如,NoSQL 是一个很好的方法吗?
这里唯一接近标准方法的是将数据存储在服务器上,而不是客户端上。有很多方法可以做到这一点,如果您反对选择“似乎可以解决问题的随机库”,那么您也应该反对选择“似乎可以解决问题的随机数据库技术”。
我认为在这种情况下学习的最佳方法是构建您的软件,使其对数据如何存储在后端一无所知。这样,您可以交换文本文件、SQL dbms、NoSQL dbms 以及您可以想到的任何其他内容,而完全不影响前端代码。
这是很好的软件设计——前端和后端之间的松散耦合。
于 2012-08-15T15:42:50.170 回答