사용자가 레코드를 편집하고 해당 레코드의 이전 버전을 볼 수있는 프로젝트에 대한 접근 방식을 찾으려고합니다. 다음은 목록을 사용하여 단순화 된 예제 스키마입니다.
TABLE list (
id int auto_increment primary key,
user_id int,
title varchar(255)
);
TABLE list_tasks (
id int auto_increment primary key,
list_id int,
title varchar(255),
order int,
is_complete tinyint
);
따라서 사용자가 들어 와서 목록을 여러 번 편집 (예 : 작업 추가 또는 제거, 작업 순서 변경, 완료 표시, 이름 변경 등) 한 다음 저장할 수 있습니다. 이 시점에서 목록과 작업의 '버전 2'를 생성하고 이전 버전을 볼 수는 있지만 목록에 액세스하면 항상 최신 버전을 얻습니다.
MySQL 데이터베이스에서 이런 방식으로 버전 데이터를 처리하기위한 일반적인 접근 방식 / 디자인 패턴이 있습니까?