我开始设计一个有一些我从未真正处理过的要求的网站。具体而言,数据对象将具有类似但不精确的属性。是的,我可以找出大部分可能的属性,然后不填充那些没有意义的属性,因此保持传统的关系"表格和栏目设计,但我认为这可能是学习NoSQL的好时机。
此外,用户将只有1个文本框进行搜索,我需要搜索所有数据对象及其属性以查找该字符串。
理想情况下,我希望按照" important"的顺序进行搜索返回,这意味着如果在"中找到用户输入字符串的匹配项。命名"如果字符串在子属性上匹配,则返回为更高置信度匹配。
任何人都有过这种情况的经历吗?你尝试过什么工作或没有工作?我认为这个项目非常适合NoSQL类型的数据库,我错了吗?
答案 0 :(得分:2)
坚持使用传统的关系数据库,如MySQL或Postgresql。我建议在获得匹配结果后,根据应用程序代码中的相关性进行排序。结果集的大小会影响您的设计选择,但如果您的结果少于1-2k,那么只需保持简单,不要过于担心优化。
NoSQL只是一个愚蠢的键值存储,一个可以跨多个应用程序实例共享的持久字典。它可以解决可扩展性问题,但引入了新的问题,因为您现在只有一个愚蠢的数据存储。关系数据库已经进行了多年的性能调优并且做得很好。
我发现NoSQL更适合存储状态数据,比如用户首选项或缓存。如果您正在分析数据之间的关系,那么您需要一个关系数据库。