2011-02-15 6 views
0

좋아요, 시나리오는 간단합니다 (?). 나는 사용자가 업데이트 할 수있는 세 가지 모델 인 Articles, ReviewsComments이라고 말합니다. 업데이트 된 레코드 (사용자로부터)를 관리자 (공개 뷰가 아닌)에게만 사용 가능하게하려는 경우 가장 좋은 디자인이 무엇인지 궁금합니다. 그러나 이전의 관리자는 관리자가 될 때까지 그대로 유지합니다. 그들을 검토합니다.Ruby on Rails의 디자인 질문

처음 생각하면 사용자의 업데이트 작업에 대한 새 레코드를 만들고 이전 레코드를 참조하여 관리자가 이전 레코드 검토를 마칠 때 후자 레코드가 삭제되도록하는 것이 가장 좋습니다 검토 된 것이 게시됩니다. 나는 사용자로부터 많은 업데이트가 있다면 데이터를 보유한 테이블이 매우 짧은 시간 내에 크게 성장할 것이라고 진지하게 생각한다. 다른 제안이 있으십니까?

도움에 감사드립니다.

P.S. Ruby on Rails 프레임 워크를 사용하고 있는데, 전혀 다르다면 ..

+1

아마도 http://stackoverflow.com/questions/3080789/moderated-model-editing-in-rails2의 사본 – Dominic

답변

1

Wordpress 초안 시스템을 생각 나게하고 근실하게 생각합니다. 아마도이 방법을 사용하는 방법 중 하나 일 것입니다. 즉, [draft, published etc ..]와 같은 post_type이있는 열이 있어야합니다. 또는 기사 모델의 다형성 인 초안 모델 만 게시 할 수 있습니다. 나는 당신이 테이블이 너무 커지는 것에 대한 당신의 걱정에 맞다고 생각합니다. 따라서 이전의 초안을 제거하거나 다른 테이블에서 보관하는 전략을 선택하는 것이 좋습니다. 따라서 공간을 차지하고 검색 시간을 낭비하지 않아야합니다 (더 나은 성능을 위해 인덱스를 사용해야 함).

어쩌면 행동-으로 상태 기계가 명심해야 할뿐만 아니라 (http://www.practicalecommerce.com/blogs/post/122-Rails-Acts-As-State-Machine-Plugin)

0

한 가지 도움을 줄 수는 상세한 개정 역사를 만들려고하지 않는 한, 진짜의 두 가지 버전이 있다는 것입니다 해당 기사의 현재 승인 된 공개 버전 및 현재 편집 된 항목 버전. 따라서 아마 두 부 만 이야기하고 초안 버전을 게시판에 복사하고 승인되면 초안을 삭제하거나 사용자가 승인되기 전에 추가로 변경 한 경우 업데이트 할 수 있습니다.