2013-10-25 6 views
1

나는 비지니스 listings 웹 사이트를 운영하고 있습니다. 현재 사용자가 로그인하고 목록을 업데이트 할 수있는 인터페이스를 만들고 있습니다.PHP/MySQL - 수정 승인 시스템

  1. 사용자가 목록을 편집하고
  2. 편집 그동안의 승인
  3. 을 위해 관리자에게 전송됩니다 제출하는 기존 업체 사이트에 남아 다음과 같이

    내가 구현하고자하는 기능입니다

  4. 관리자가 편집을 검토하고 일반적으로 지금

을 승인하기 전에 실수를 수정 데이터베이스에 '중복'행을 저장하고 플래그가 '보류 중'으로 설정하면이 같은 작업을 수행 할 수 있습니다.

그러나 가능한 경우 목록 데이터가 여러 카테고리 선택을 포함하여 여러 테이블에 저장되므로 다른 방법을 시도하고 싶습니다.

이상적으로 나는 추가 데이터베이스 레코드를 만들지 않는 것이 좋습니다. 내가 사용할 수있는 더 나은 대안이 있습니까?

+1

원래 레코드 ID와 업데이트 된 데이터가 일련 화되고 저장된 링크 테이블일까요? – Mattt

+1

관계가 직렬화 된 배열로 저장되도록 위키 테이블을 디자인 할 수 있습니다. 그것은 당신의 끝에 추가 처리가 필요하지만 그것은 하나의 테이블에 보관됩니다. –

답변

0

실제로 두 가지 접근 방식이 있습니다.

  1. 데이터베이스를 사용하여가 (중 같은 테이블, 또는 "보류중인 변경"원래의 것과 거의 같은 구조를 가진 테이블에) 어떤 식 으로든 있지만 그것은 레코드를 작성합니다.

  2. 에서 모든 데이터베이스 있지만, 일부 중간 저장 사용하지 마십시오 (키/값 저장소, 메시지 큐, memcache에, 이메일, 그냥 일부 파일, 생각 나는대로))

로를 옵션 2를 사용하면 질문에 대한 2 명의 주석 작성자가 이미 말한대로 쉽게 할 수 있습니다. 데이터 구조를 만들고이 구조를 직렬화하고 관리자가 데이터를 "승인"하여 데이터베이스에서 업데이트 할 때까지 아무 곳에서나 저장할 수 있습니다.

데이터베이스에서 구현하는 것이 현재 또는 상태 플래그를 사용하여 변경 내용을 "롤백"할 수는 있지만 언뜻보기에는 두 번째 옵션이 더 빨리 구현됩니다. 둘째로, imho는 유지할 수 있도록 모든 관련 데이터를 가깝게 유지하려고합니다.

관련 문제