2017-11-02 1 views
0

私のソファのデータベースのための2つの異なる構造を設計する、私はどちらが私に最も適しているか知りたい。もちろんによってはcouchdbでデータを構造化する最良の方法ですか?

文書:

{     
    "_id": "e11b862c9939f9d0de39f3aa28036c96", 
    "_rev": "4-e1245399d2f074ef5710d6bcbb0aa7f7", 
    "nombre": "JavaScript", 
    "descripcion": "curso basico de javascript", 
    "horas": 50, 
    "costo": 500000, 
    "modalidades": [ 
    { 
     "nombre": "online", 
     "descripcion": "cursos en linea", 
     "descuentos": [ 
     { 
      "descuento": 0.2, 
      "fecha caducidad": "2017-11-20" 
     }, 
     { 
      "descuento": 0.1, 
      "fecha caducidad": "2017 - 12 - 30 " 
     } 
     ] 
    }, 
    { 
     "nombre": "privada", 
     "descripcion": "cursos privados", 
     "descuentos": [ 
     { 
      "descuento": 0.2, 
      "fecha caducidad": "2017-11-20" 
     } 
     ] 
    } 
    ] 

私はモダリティに応じてコース、コースのコスト、および各コースの割引を保つユニークな文書を作る、私は知りたいですあなたが実際に使用データ、それは難しいgeneri以上のものを提供するためにしようとする方法上の任意の手がかりを提供していませんでしたように、2つの形式の

{ 
    "_id": "e11b862c9939f9d0de39f3aa28034b9e", 
    "_rev": "3-87278a7404c9f458be9beec1808aafb7", 
    "cursos": [ 
    { 
     "nombre": "Javascript", 
     "descripcion": "curso basico de javascript", 
     "horas": 50, 
     "costo": 500000, 
     "modalidad": [ 
     { 
      "nombre": "online", 
      "descripcion": "cursos en linea", 
      "descuentos": [ 
      { 
       "descuento": 0.2, 
       "fecha caducidad": "2017-12-20" 
      } 
      ] 
     }, 
     { 
      "nombre": "privada", 
      "descripcion": "cursos privados", 
      "descuentos": [ 
      { 
       "descuento": 0.15, 
       "fecha caducidad": "2017-12-20" 
      } 
      ] 
     } 
     ] 
    }, 
    { 
     "nombre": "HTML5", 
     "descripcion": "curso basico de HTML5", 
     "horas": 60, 
     "costo": 400000, 
     "modalidad": [ 
     { 
      "nombre": "online", 
      "descripcion": "cursos en linea", 
      "descuentos": [ 
      { 
       "descuento": 0.3, 
       "fecha caducidad": "2017-12-20" 
      } 
      ] 
     }, 
     { 
      "nombre": "privada", 
      "descripcion": "cursos privados", 
      "descuentos": [ 
      { 
       "descuento": 0.2, 
       "fecha caducidad": "2017-12-20" 
      } 
      ] 
     } 
     ] 
    } 
    ] 
} 
+0

これらの2つのコードについて具体的な質問をしない限り、これは広範な質問であり、別のフォーラムで質問する必要があります – Ibo

+0

iboの回答に感謝します。具体的な質問はどの構造が最も適切ですか? –

答えて

1

を管理する方が便利ですcアドバイス。各コースのため、むしろすべてのコースについてのデータを保持している一つの大きな文書とは別の、小さな文書 - しかし...

それは最初アプローチ次のCouchDB/Cloudantのうち、良好なパフォーマンスを得るために一般的に簡単です。アプリケーションが表示する使用パターンによって異なります。私は、コースデータが頻繁にしか変わらない(パフォーマンスが良く、競合の可能性が低い)と推測し、コースベースでコースデータへのアクセスが主に必要になると考えています。

私は最初のアプローチを行い、すべてのコースに名前でアクセスできるようにビューを作成します。そうすることで、JavaScriptコースに関するデータを単に公開するために、すべてのコースデータを読み込む必要はありません。

関連する問題