예를 들어 A와 B는 일대다이고 A에는 B의 n개 레코드가 있으며 ID는 (1, 2, 3, 4)입니다. 이제 (3, 4, 5, 6)으로 제출됩니다. ), A와 B를 업데이트해야 합니다. 관계 B는 (3, 4, 5, 6)입니다. 원래 관계(1, 2, 3, 4)를 먼저 삭제한 다음 (3, 4, 5)를 삽입해야 합니다. , 6)? 아니면 업데이트하기 전에 이전 데이터를 꺼내서 새 데이터와 비교하시겠습니까?
예를 들어 A와 B는 일대다이고 A에는 B의 n개 레코드가 있으며 ID는 (1, 2, 3, 4)입니다. 이제 (3, 4, 5, 6)으로 제출됩니다. ), A와 B를 업데이트해야 합니다. 관계 B는 (3, 4, 5, 6)입니다. 원래 관계(1, 2, 3, 4)를 먼저 삭제한 다음 (3, 4, 5)를 삽입해야 합니다. , 6)? 아니면 업데이트하기 전에 이전 데이터를 꺼내서 새 데이터와 비교하시겠습니까?
색인이 없으면 delete
를 먼저 사용한 다음 insert
을 사용하겠습니다.
그러나 색인이 있는 경우에는 다음 방법을 먼저 update
사용한 다음 insert
을 사용합니다.
관계 테이블에 is_deleted
필드를 추가합니다. 기본값은 0입니다. is_deleted
은 관계 종료 여부를 표시하는 데 사용됩니다.
실행SQL
(동일한 관계에 대해서는 하나의 레코드만 존재함)
<code>> `UPDATE table SET is_deleted = 1 WHERE id1=A;` > `REPLACE INTO table (id1, id2, is_deleted) VALUES('A',3,0), ('A',4,0);` </code>
비교 방법 코드가 복잡하고 데이터 항목을 추가하는 것은 작은 재앙이며 유지 관리가 어렵습니다
질문에 언급된 내용을 모두 삭제하고 삽입하세요
단일 관계를 삭제하고 단일 관계를 추가하여 별도의 인터페이스를 생성합니다.
관계 삭제마다 관계 연산을 추가하고 해당하는 별도의 인터페이스를 호출합니다
간단하고 투박해서 먼저 삭제한 후 삽입하세요.
비교를 위해 이전 데이터를 꺼내는 것이 좋습니다.
먼저 삭제한 후 삽입과 동시에 아카이브 필드를 추가하고 문자열로 저장하고 특수 기호를 사용하여 이번 시간을 이전 관계와 구분하고 추가합니다.