2014-12-16 6 views
0

현재 전자 상거래 웹 응용 프로그램의 데이터베이스를 설계하고 있습니다.MySQL 데이터베이스 디자인 사용자 등급

5 명의 별표 시스템 (예 : 아마존과 같은)으로 다른 사용자가 사용자를 평가할 가능성을 추가해야합니다. 내 데이터베이스 (예 : USER_RATING)에 테이블을 하나 더 추가해야한다고 생각합니다. 하지만 내 USER 테이블과 어떤 종류의 관계를 사용할 수 있습니까? USER_RATING 그렇게 보이는

user_id INT <- PK 
first_name VARCHAR(35) 
last_name VARCHAR(35) 
email VARCHAR(254) 

표 :

USER 표는 다음과 같은 필드가 있습니다

value FLOAT 
time TIMESTAMP 
+1

USER_RATING 테이블에 user_id 및 voting_user_id를 추가하십시오. 관계형 구조는 두 ID를 공통 ID로 연관 지을 것을 제안합니다. voting_user_id는 누가 투표했는지 기록 할 수 있도록 이중 캐스트하지 않습니다. 그것은 단지 등급 시스템의 시작일뿐입니다. 안티 게임 로직을 다룰 때까지 기다려주십시오. –

+0

답변 해 주셔서 감사합니다! –

답변

0
당신은 한 사용자가 다른이 중복을 방지하기 위해 평가 때 내가 좋을 것 기록해야합니다

다음과 같은 문자 :

d rater_user_id에 외래 키를 만듭니다. USER 테이블에

응용 프로그램과 당신이 또한 디자인을 조금 denormalising 가치가있을 수도 있습니다 기대하고 평가의 수에 따라

하고 기록한다 current_rating (즉, 전체)와 number_of_ratings.

+0

고마워! current_rating에 대해서 나는 데이터베이스에 요청을 보내고 매번 "신선함"을 얻기로 결정했습니다. –

관련 문제