适用于中等复杂度搜索系统的SQL与NoSQL

时间:2018-11-02 14:39:20

标签: mysql mongodb nosql mean-stack

我们将要开始开发调度系统,并且我们有动机从PHP迁移到Node的后端,所以也有可能从MySQL迁移到MongoDB(或类似的东西),我不是技术含量很高的人,但我正在尝试帮助我的团队在这里做出选择。该系统的所有功能似乎都可以与任何一个数据库一起使用,但是一个特殊情况引起了我对性能的担忧:

让我们假设我的基础上有几位医生,每位医生都有他们的专业和诊所位置,以及他们在该系统上工作的时间。他们还已经安排了几个星期的约会。

一位用户在搜索表中填写:

  • 他们的地理定位(x,y);
  • 搜索半径(例如:10英里);
  • 需要专业化(例如:皮肤科医生);
  • 所需时间(例如:上午11点);

对于我的老派思维而言,此搜索对于关系数据库似乎不错,但是对于非关系数据库,它需要进行大量工作,因为它们的可用性将在每个医生“ JSON”内部,而不是在特定的外部“表”中'进行安排。

我的担忧有意义吗?

2 个答案:

答案 0 :(得分:3)

您可以同时使用SQLNoSQL数据库来获得所需的结果。但是您正在谈论的项目更多是关系设计。示例:-医生可以去多家诊所。病人也与诊所以及医生有关。在这种情况下,最好的解决方案是混合方法,在该方法中,主数据库应该是关系数据库,并且对于读取操作,可以根据需要插入NoSQL之类的MongoDB数据库。

答案 1 :(得分:1)

@Rafael Souza

您应该使用关系模式设计。

如果您使用NoSQL,那么在我们的情况下,以下是我想传达的要点

  1. NoSQL将无法充分利用。
  2. 开发人员必须学习NoSQL及其框架。
  3. 与NOSQL相比,有一个庞大的SQL问题论坛。
  4. 数据库的存储容量不会太大,因此SQL应该会很好。
  5. 这里您需要管理最适合SQL的Doctor and Clinics之间的关系。

我应该说不要使用混合方法,因为这将对您的设计造成负担,任何数据库类型都能够处理所有功能。