Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 针对中等复杂度搜索系统的SQL与NoSQL_Mysql_Mongodb_Nosql_Mean Stack - Fatal编程技术网

Mysql 针对中等复杂度搜索系统的SQL与NoSQL

Mysql 针对中等复杂度搜索系统的SQL与NoSQL,mysql,mongodb,nosql,mean-stack,Mysql,Mongodb,Nosql,Mean Stack,我们即将开始开发一个调度系统,我们有动力从PHP迁移到后端的Node,所以从MySQL迁移到MongoDB(或类似的东西)也是有意义的,我不是一个非常技术的人,但我试图帮助我的团队在这里做出选择。该系统的所有功能似乎都适用于任一数据库,但有一种特殊情况引起了我对性能的担忧: 让我们假设我有几个医生在我的基地,每个人都有他们的专业和诊所的位置,还有他们在这个系统上工作的时间跨度。他们也已经有一些预约安排在几周内的分散时间 一个用户在搜索表单中填写以下内容: 它们的地理定位(x,y) 搜索半径(例

我们即将开始开发一个调度系统,我们有动力从PHP迁移到后端的Node,所以从MySQL迁移到MongoDB(或类似的东西)也是有意义的,我不是一个非常技术的人,但我试图帮助我的团队在这里做出选择。该系统的所有功能似乎都适用于任一数据库,但有一种特殊情况引起了我对性能的担忧:

让我们假设我有几个医生在我的基地,每个人都有他们的专业和诊所的位置,还有他们在这个系统上工作的时间跨度。他们也已经有一些预约安排在几周内的分散时间

一个用户在搜索表单中填写以下内容:

  • 它们的地理定位(x,y)
  • 搜索半径(例如:10英里)
  • 需要专业化(例如:皮肤科医生)
  • 所需时间(例如:上午11点)
对于我以前的思维方式来说,这种搜索对于关系型数据库来说似乎还可以,但对于非关系型数据库则需要大量工作,因为它们的可用性将在每个医生的“JSON”中,而不是在特定的外部“表”中进行调度


我的担心有什么意义吗?

您可以使用
SQL
NoSQL
数据库实现所需的结果。但是你所说的项目更多的是关系设计。示例:-医生可以访问多个诊所。一名患者不仅与医生有关,还与诊所有关。在这种情况下,最好的解决方案是混合方法,其中主数据库应该是关系型的,对于读取操作,如果需要,您可以插入
NoSQL
数据库,如
MongoDB

您可以使用
SQL
NoSQL
数据库实现所需的结果。但是你所说的项目更多的是关系设计。示例:-医生可以访问多个诊所。一名患者不仅与医生有关,还与诊所有关。在这种情况下,最好的解决方案是混合方法,其中主数据库应该是关系数据库,对于读取操作,如果需要,可以插入
NoSQL
数据库,如
MongoDB

@Rafael Souza

您应该使用关系模式设计

如果您使用NoSQL,那么在我们的例子中,下面是我想要传达的要点

  • NoSQL不会在最佳状态下得到充分利用
  • 开发人员必须学习NoSQL及其框架
  • 与NOSQL相比,SQL问题有一个巨大的论坛
  • 数据库存储大小不会太大,所以SQL应该很好
  • 在这里,您需要管理医生和诊所之间的关系,这在SQL中是最合适的
  • 我应该说,不要使用混合方法,因为这会增加设计开销,任何数据库类型都可以单独处理所有功能。

    @Rafael Souza

    您应该使用关系模式设计

    如果您使用NoSQL,那么在我们的例子中,下面是我想要传达的要点

  • NoSQL不会在最佳状态下得到充分利用
  • 开发人员必须学习NoSQL及其框架
  • 与NOSQL相比,SQL问题有一个巨大的论坛
  • 数据库存储大小不会太大,所以SQL应该很好
  • 在这里,您需要管理医生和诊所之间的关系,这在SQL中是最合适的
  • 我应该说,不要使用混合方法,因为它会增加设计开销,任何数据库类型都可以单独处理所有特性