NoSQL或SQL Server

NoSQL或SQL Server,nosql,relational,Nosql,Relational,我开始设计一个有一些我从未真正处理过的需求的网站。具体来说,数据对象将具有相似但不精确的属性。是的,我可能会找出大多数可能的属性,然后不填充没有意义的属性,因此保留传统的“关系”表和列设计,但我认为这可能是学习NoSQL的好时机 此外,用户将有1个(而且只有1个)文本框进行搜索,我需要搜索所有数据对象及其属性才能找到该字符串 理想情况下,我希望按照“重要性”的顺序返回搜索结果,这意味着如果在“name”属性中找到与用户输入的字符串匹配的内容,则返回的内容将比在子属性上匹配的内容更可信 有人有过这

我开始设计一个有一些我从未真正处理过的需求的网站。具体来说,数据对象将具有相似但不精确的属性。是的,我可能会找出大多数可能的属性,然后不填充没有意义的属性,因此保留传统的“关系”表和列设计,但我认为这可能是学习NoSQL的好时机

此外,用户将有1个(而且只有1个)文本框进行搜索,我需要搜索所有数据对象及其属性才能找到该字符串

理想情况下,我希望按照“重要性”的顺序返回搜索结果,这意味着如果在“name”属性中找到与用户输入的字符串匹配的内容,则返回的内容将比在子属性上匹配的内容更可信


有人有过这种情况的经验吗?你试过哪些有效或无效的方法?我认为这个项目非常适合NoSQL类型的数据库,这是错误的吗?

坚持使用传统的关系数据库,如MySQL或Postgresql。我建议在获得匹配结果后,在应用程序代码中按相关性排序。结果集的大小应该会影响您的设计选择,但是如果您的结果少于1-2k,那么只需保持简单,不要太担心优化

NoSQL只是一个哑键值存储,一个可以跨多个应用程序实例共享的持久字典。它可以解决可伸缩性问题,但引入了新的问题,因为您现在只有一个哑数据存储。关系数据库已经进行了多年的性能调优,并且做得很好


我发现NoSQL更适合存储状态数据,比如用户首选项或缓存。如果要分析数据之间的关系,则需要关系数据库。

如果需要“实体”之间的关系和/或事务一致性,如果一致性比可用性更重要,则使用传统的SQL Server。如果您的数据在形状上更“不可预测”,并且(接近)100%的可用性比关系一致性更重要,那么您可以查看NoSQL及其文档存储模型。