2009-09-14 2 views
1

사용자 및 게시 등급 시스템을 구현하려고합니다.데이터베이스 및 코드에서 여러 평판 관리

여러 평판을 관리하는 데 가장 적합한 스키마는 무엇입니까?

사용자는 게시 및 의견에서 파생 된 평판을 얻습니다 (SO와 유사).

게시물에 대한 평판도 있습니다 (다시 SO와 유사 함).

명성표가 하나있는 나의 초기 아이디어. 행은 사용자/게시 ID와 투표 값에 해당합니다.

두 질문 :

  • 이이를 관리하는 가장 좋은 방법이 있나요?

  • 사용자 및 게시 레코드의 고유 ID는 레이크가 생성하는 기본값 인 자동으로 증가합니다. unique_ids가 충돌 할 수있는 것처럼 보입니다. 그게 유효한 관심사 야? 어떻게하면이를 완화시킬 수 있을까요?

감사

답변

4

나는 포스트 명성과 사용자의 명성에 대해 별도의 테이블을 가질 것이다. 이것들은 의미 상으로 다른 것들이므로 분리되어야합니다.

이렇게하면 평판이 적용되는 외래 키가있는 테이블 하나와 사용자에게 외래 키가있는 테이블을 가질 수 있습니다.

+0

많은 중복 코드가있는 것처럼 보입니다. 그 제안? – cbrulak

+0

2 개의 테이블이 동일한 '모양'을 갖고 있다면 명성 처리 코드가 문제가되지 않습니까? .Net에서는 인터페이스를 작성해야하지만 여전히 작동합니다. 루비에서 그렇게하는 방법을 모르겠지만 가능하다고 생각할 것입니다. – Joshua

+1

아마도 상속은 여러분이 봐야 할 곳입니다. http://api.rubyonrails.org/classes/ActiveRecord/Base.html 및 '단일 테이블 상속'섹션을 참조하십시오. 약간의 코드가있을 수 있지만 코드를 복제 할 필요는 없습니다. 관점은 더 정상화 될 것이다. –