2011-03-23 2 views
1

내 사이트에서 PHP (Yii-framework) 및 MySQL 데이터베이스를 사용하고 있습니다.작성 방법 "모든 수정 사항 추적"

사용자가 글을 게시하고 수정할 수 있습니다. 여기에있는 모든 수정 버전을 어떻게 저장할 수 있습니까? (위키 피 디아처럼이 사이트는 공동으로 편집되었으며 의 모든 편집 내용이 추적 됨)

어떻게 사용해야합니까? 데이터베이스 구조? 어떤 도서관? Google에 어떤 키워드를 사용해야합니까? :)

UPD. 그리고 여기에있는 것처럼 수정 사이의 변경 사항을 표시하는 방법은 무엇입니까?

감사

+3

'PHP mysql 버전 제어'를 검색하면 다음과 같이 나타납니다 : http://stackoverflow.com/questions/4127252/basic-version-control-for-mysql-table –

+0

이 기사는 버전 관리와 왜 ActiveRecord isn에 대한 몇 가지 흥미로운 생각이 있습니다 그럴 가치가 없어. 아이디어는 DB의 내용과 별도로 메타 데이터를 저장하는 것입니다. http://kore-nordmann.de/blog/why_active_record_sucks.html – thaddeusmt

답변

2

나는 (있을 경우 그렇지 않으면 당신이 필요로하는 모든 필드를 확인) 현재 데이터베이스 구조를 사용하지만, 하나 개 또는 두 개의 항목이 추가, 개정 수있는 가장 중요한을 추가 할 것입니다. 이는 개정이 이루어질 때마다 단순히 증가 될 수 있습니다. 데이터베이스 INSERT 명령 (이전 게시물을 유지하려는 때문에 INSERT이 아닌 UPDATE을 사용하십시오.)에 코드를 작성하는 것은 까다로울 수 있습니다.

또 다른 방법은 업데이트가 제출 된 시간 (아마도 "생성 된 시간")을 저장하는 열을 사용하는 것입니다. 그리고 그로부터 얼마나 많은 업데이트가 있었는지 (행 수 계산)와 순서 그들은 (날짜순으로) 있습니다.

+0

문자열이나 단어가 하나만 변경된 경우에도 새 개정판에 전체 텍스트를 저장해야합니까? 어떻게 여기에 수정과 같은 차이점을 표시하려면? – Lari13

+1

전체 텍스트를 저장하는 것이 분명 쉽습니다. 차이점을 표시하려면 http://stackoverflow.com/questions/321294/highlight-the-difference-between-two-strings-in-php (http://pear.php.net/package/Text_Diff)를 확인하십시오. . – Bojangles

0

감사 기록 ​​의 PHP ORM을 찾고 있습니다. Yii 프레임 워크에 포함 된 ORM은 무엇입니까?

저는 SymfonyDoctrine을 사용하고 정확히 Versionable Plugin을 가지고 있다는 것을 알고 있습니다.

"logable_behavio r"Yii 해골이 도움이됩니다.

+0

ActiveRecord가 아닌 일반 old DAO를 사용하고 있습니다. ORM – Lari13

+0

어쩌면 지금 생각해보십시오. 감사 로깅이 필요한 경우 i18n 및 기타 기능이 이미 activerecord 동작 또는 ORM 플러그인에 구현되어 있어야 할 수 있습니다. –

관련 문제