사용자가 콘텐츠를 입력 할 수 있도록 사이트를 수정하려고합니다. 그러나 일단 제작 된 컨텐츠는 승인을 받아야 발행 할 수 있습니다. 이는 해당 내용에 대한 레코드에 "보통"비트를 설정하고 하나의 테이블 만 필요하면 쉽게 달성 할 수 있습니다.사이트 콘텐츠의 생성, 승인, 수정, 승인 패턴
이제 사용자가 StackOverflow에서 내용을 편집 할 수있게하고 싶습니다. 그러나 편집 한 기록을 볼 수 있도록 각 편집을 승인하고 저장해야합니다.
편집이 승인 대기 중일 때 "라이브"레코드로 편집하는 것을 방지하면 보류중인 편집의 충돌이 문제가되지 않도록 허용 할 수 있습니다.
본인의 의도는 각 항목의 이전 버전 컬렉션을 별도의 테이블에 보관하고 승인/거부 될 때까지 보류중인 편집을이 테이블에 게시 한 다음 승인 된 경우 메인 테이블의 레코드로 교체하는 것입니다.
누구나이 패턴의 결함을 볼 수 있습니까? 이것을하는 더 좋은 방법을 생각해 볼 수 있습니까?
비록 그것이 관련이 있다고 생각하지 않지만 ASP.NET MVC 및 SQL Server와 함께 C#을 데이터 저장소로 사용하고 있습니다.
Stackoverflow는 "마지막 업데이트 승"접근 방식을 사용합니다. 2 명이 동일한 질문을 편집하면 저장 한 첫 번째 사람의 변경 사항이 손실됩니다. 이것은 당신이 추천하는 것입니다, 나는 생각합니다. 그러나 여기보다는 단명하지 않으며 "느린"내용에 대해서는 적절하지 않을 수도 있습니다. 컨텐츠를 잠그는 것이 더 합리적인 방법이지만, 웹 설정에서는 잠금이 취소 된 시점을 알지 못하도록해야합니다. Joomla이 문제가 있습니다. 브라우저를 닫을 때 관리자는 문서를 잠글 때까지 잠긴 상태로 유지됩니다. – cdonner
편집하는 동안 항목을 잠그고 중재자가 승인 할 때까지 항목을 변경 한 후에 잠그는 것의 차이점이 있습니다. 나는 이전에 대한 "마지막 업데이트 승리"접근 방식을 선호하지만, 후자의 경우 개정판이 승인되기 전에 항목을 편집 할 수 있으면 더 좋을 것입니다. – dtb