2016-11-12 36 views
2

我是新來RethinkDb和NoSQLRethinkDB數據結構

1:我的教訓是文檔庫DB是數據驅動的,以往的數據來了,你只是把它放在什麼分貝。這是它的主要好處。你並不需要建立架構或數據結構,數據使自己的結構

例如最初數據如下

{ 
name: 
address: 
phone: 
} 

{ 
name: 
{ 
    firstname: 
    lastname: 
} 
address: 
    { 
    address1: 
    address2: 
    } 
phone: 
    { 
    phone1: 
    phone2: 
    } 
} 

兩個數據是在文件,你必須調整你的應用程序。

我理解正確。這種方法是否正確?

2:我在做一個醫院管理應用程序。我想知道有多少深,我可以創建一個文檔

{ 
id: 
patient name: 
age: 
patient_activity: 
    { 
    lab: 
    [ 
    { 
     test_name: 
     test_results: 
    } 
    .... 
    .... 
    ] 
    xray: 
    [ 
    { 
     xray: 
     comments: 
    } 
    .... 
    .... 
    ] 
    .... 
    .... 
    } 

患者姓名,年齡將保持相同的爲每一位光臨,但像實驗室測試,處方,藥品的活動,操作等可每次訪問的倍數。

所以我的問題是,我是多麼的深層次可以去當打破數據分成多個文件

感謝

回答

2

據我所知,根據doc,ReQL的嵌套深度限制爲20級。

+0

是好巢20個級別 – Jawad

+1

@Jawad它依賴。例如,如果你想通過嵌套字段來「過濾」表,如果會降低性能。換訂訂閱也一樣。我建議保持嵌套級別<8-10。例如,您可以將某些字段移動到不同的表並通過id綁定數據(如SQL數據庫中的外鍵)。 – Suvitruf

0

documentation on data modeling給出了各種模型和它們的優點和缺點的概述:

有兩種方法在RethinkDB文檔之間的關係進行建模:

  • 通過使用嵌入式陣列。
  • 通過鏈接存儲在多個表中的文檔(類似於傳統的關係數據庫系統)。