2017-10-04 18 views
0

私はWebアプリケーションの作成に取り組んでいます。私は3つのエンティティを持っているプロジェクトで :親を更新するときにカスケード更新の子

  • スーツ
  • ケース
  • ステップ

一つのスーツは、多くのケースが含まれており、1ケースは多くのステップが含まれています。すべての情報は1つのWebページでのみ表されます。したがって、Webページには、1つのスーツについての情報、このスーツに含まれるケースのリスト、および各ケースのすべてのステップがあります。
ウェブページには、スーツについてのすべての情報を保存するためのボタンが1つあります。だから、顧客は彼が望むすべてを変えることができます。彼はステップやケースを削除して挿入することができますが、すべての変更は「保存」ボタンをクリックすると保存されます。

私の質問は:"どのようにすべての情報を更新するためのクエリを正しく書くか?"

小さな例:私たちは、このようなバックエンド何かに乗る:

顧客更新スーツの情報は、例えば、彼は「「ケース1」に、新たなステップを追加したり、削除することができ
{ 
    "id": 1, 
    "name": "Suit name", 
    "cases":[ 
     { 
      "id": 1, 
      "name": "Case 1", 
      "steps":[ 
       { 
        "id": 1, 
        "name": "Case 1 first step" 
       } 
      ] 
     }, 
     { 
      "id": 2, 
      "name": "Case 2", 
      "steps":[ 
       { 
        "id": 2, 
        "name": "Case 2 first step" 
       }, 
       { 
        "id": 3, 
        "name": "Case 2 second step" 
       } 
      ] 
     } 
    ] 
} 

ケース2 "。このような状況で、私は新しいJSONオブジェクトを作成します。

{ 
    "id": 1, 
    "name": "New suit name", 
    "cases":[ 
     { 
      "id": 1, 
      "name": "Case 1", 
      "steps":[ 
       { 
        "id": 1, 
        "name": "Case 1 first step" 
       }, 
       { 
        "name": "Case 1 second step" 
       } 
      ] 
     } 
    ] 
} 

そして、私は、このJSONオブジェクトを取得する場合、それは(更新、削除、または追加)変更されたものを検出するのには本当に難しいので、私はスーツに関するすべての情報を削除し、もう一度挿入してください。

このJSONオブジェクトを送信するもう一つの問題:

PUT http://example.com/suit/1 

私が正しくJSONオブジェクトを指定した場合、私は、それは追加のためのAPIをRESTアップデートを使用してスーツ内のすべての要素を削除することができます。

しかし、私は間違った方法だと思います。 REST API PUTは、要素に関する情報を更新するか、要素が存在しない場合は削除するだけで、要素を追加する必要があります。

誰かが同様の問題に直面しているかもしれません。私はあなたのコメントや提案を聞いてうれしい。私は、オブジェクトが存在する場合は、API経由で照会することをお勧めして作成呼び出さない場合コールアップデートを存在する場合の例では、それに応じて呼び出しますrestfull APIで

よろしく

答えて

0

サーバー側でこの混乱をすべて処理する必要はありません

関連する問題