문제

새 웹 사이트에 So 's와 유사한 배지 기능을 구현하는 방법에 대해 생각하고 있습니다. 배지 기준을 저장하는 가장 좋은 방법은 무엇입니까?

두 가지 아이디어 :

  • 모든 코드
  • '두 번째 시스템' - 배지 및 기준을 정의하기위한 메타 아키텍처를 만듭니다. 데이터베이스에 일부 정보를 저장하고 배지와 해당 기준을 파악하기 위해 코드 쿼리가 있습니다.

더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

규칙.

시스템에서 이벤트를 생성하고 이벤트 스트림 프로세서 내에서 규칙을 사용합니다.

구체적으로, 배지가 "10 개의 게시물을 만들었다"고 말합니다. 모든 게시물에 대해 "user = : user"가있는 게시물에서 "count (*) 선택 (*)을 실행하지 않습니다. 오히려, 당신은 각 게시물이 오는 것을 지켜 보는 간단한 규칙을 가지고 있으며, 규칙 상태를 사용자 프로파일에 저장하는 "count 그들"을 보냅니다.

이렇게하면 "Made 10 게시물"은 "Made 1,000,000"게시물만큼 저렴합니다.

이것은 또한 시스템을 훨씬 더 확장 가능하게 만듭니다.

다른 팁

나는 이것에 대한 의지에 동의한다.

이벤트가 발생할 때마다 페이지를 통해 "이벤트"를 작성하십시오. 사용자는 게시물을 삭제하고 이벤트 모듈을 이벤트와 함께 쿼리합니다. 이벤트 _user_delete_post는 해당 이벤트를 선택하고이를 기반으로 쿼리를 빌드 할 수 있습니다. 그런 다음 배지가 수여되는지 여부를 결정할 수 있습니다.

이것은 두 논리를 분리하고 모듈 식 디자인을 유지합니다. 이런 식으로 구현하는 것은 매우 쉬워야합니다.

유일한 단점은 이벤트가 "캡처되지 않은"경우 사용자가 배지 기준을 얻었을 수도 있지만 아직 보상을받지 않았다는 것입니다. 그러나 이것은 결코 일어나지 않아야합니다. 내가 생각할 수있는 유일한 상황은 데이터베이스가 수동으로 조작되는 경우입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top