たとえば、A と B は 1 対多で、A には B の n レコードがあり、ID は (1, 2, 3, 4) となります。これは (3, 4, 5, 6) として送信されます。 A と B の関係を更新する必要がある場合、(3、4、5、6) については、最初に元の関連付け (1、2、3、4) を削除してから、(3、4、5、6) を挿入する必要があります。 )?それとも古いデータを取り出して新しいデータと比較してから更新しますか?
たとえば、A と B は 1 対多で、A には n B レコードがあり、ID は (1, 2, 3, 4) として送信されます。 A と B の関係を更新する必要があります (3、4、5、6) については、最初に元の関連付け (1、2、3、4) を削除してから、(3、4、5、6) を挿入する必要があります。 ?それとも古いデータを取り出して新しいデータと比較してから更新しますか?
インデックスがない場合は、最初に使用しますdelete
后insert
。
但在有索引的情况下,我会采用以下方式先update
后insert
:
関係が終了したかどうかをマークするには、関係テーブルにis_deleted
字段,默认 0,is_deleted
を追加します。
実行SQL
(同じリレーションの場合、レコードは1つだけ存在します)
比較メソッドのコードは複雑で、データ項目の追加は少々面倒であり、保守が困難です
すべてを削除し、質問に記載されているものをすべて挿入してください
単一の関係を削除し、単一の関係を追加して別のインターフェイスを作成します
関係を削除するたびに関係操作を追加し、対応する別のインターフェイスを呼び出します
単純かつ粗雑で、最初に削除してから挿入します。
古いデータを取り出して比較することをお勧めします。
最初に削除し、次に挿入し、同時にアーカイブ フィールドを追加し、それを文字列として保存し、特殊記号を使用して今回を以前の関係から分離し、追加します。