Rethinkdb 数据库数据结构

Rethinkdb 数据库数据结构,rethinkdb,nosql,Rethinkdb,Nosql,我不熟悉DB和NoSql 1:我学到的是文档库db是数据驱动的,无论什么样的数据,只要把它放到db中就可以了。这是它的主要好处。您不需要构建数据的模式或结构,数据可以创建自己的结构 e、 g初始数据如下所示 { name: address: phone: } 后来 这两个数据都在文档中,您必须调整应用程序以适应它 我理解正确吗。这种方法正确吗 2:我在申请医院管理。我想知道我可以创建多深的文档 e、 g 每次就诊时,患者姓名、年龄将保持不变,但每次就诊时,患者的实验室检查、处方、药物

我不熟悉DB和NoSql

1:我学到的是文档库db是数据驱动的,无论什么样的数据,只要把它放到db中就可以了。这是它的主要好处。您不需要构建数据的模式或结构,数据可以创建自己的结构

e、 g初始数据如下所示

{
 name:
 address: 
 phone: 
}
后来

这两个数据都在文档中,您必须调整应用程序以适应它

我理解正确吗。这种方法正确吗

2:我在申请医院管理。我想知道我可以创建多深的文档

e、 g

每次就诊时,患者姓名、年龄将保持不变,但每次就诊时,患者的实验室检查、处方、药物、手术等活动可能会有多个

所以我的问题是,我可以深入到多深的层次,以及何时将数据分解为多个文档


谢谢

据我所知,ReQL的嵌套深度限制为20层。

概述了各种型号及其优缺点:

有两种方法可以建模数据库中文档之间的关系:

  • 通过使用嵌入式阵列
  • 通过链接存储在多个表中的文档(类似于传统的关系数据库系统)

@这要看情况而定。例如,当您尝试按嵌套字段过滤表时,if将降低性能。对changefeeds上的订阅也是如此。我建议保持嵌套级别<8-10。例如,您可以将一些字段移动到不同的表中,并按id绑定数据(如SQL数据库中的外键)。
{
 name: 
 {
  firstname:
  lastname:
 }
 address: 
  {
   address1:
   address2:
  }
 phone:
  {
   phone1:
   phone2:
  }
}
{
 id:
 patient name:
 age: 
 patient_activity:
  {
   lab: 
    [
     { 
      test_name:
      test_results:
     }
     ....
     ....
    ]
    xray: 
    [
     { 
      xray:
      comments:
     }
     ....
     ....
    ]
    ....
    ....
  }