2012-06-18 3 views
0

다음과 같은 상황이 있습니다.이 테이블을 만드는 가장 좋은 방법은

우리는 평판 테이블에서 사용자와 회사를 평가하기를 원합니다.

이 평판 테이블은 회사가 제공 한 평판을 사용자에게 저장하며, 그 반대의 경우도 마찬가지입니다.

두 개의 평판 테이블을 만들도록 제안했습니다. 하나는 사용자 용이고 다른 하나는 같은 열을 사용하는 회사 용입니다.

나는 그다지 최선의 방법이라고 생각하지 않지만 다른 해결책을 찾지 못한다.

우리가 할 수있는 다른 방법이 있습니까?

thx

+0

회사의 테이블, 명성을위한 사용자 테이블 및 테이블, 각 사용자 및 회사의 ID에 대한 일부와 함께 ID 및 평판이있는 평판을위한 테이블? – theBigChalk

답변

0

사용자의 해당 키와 동일한 회사의 고유 키를 포함하는 회사의 테이블이 있습니다.

나는 Co와 User가 many-to-many 관계라는 것을 가정한다.

Co 및 User 모두에 대해 두 개의 키와 Co-rep 및 User-rep에 대한 두 개의 필드가있는 표가 하나 더 필요합니다. 공동 키 및 사용자 키 조합은이 테이블에 대한 고유 항목입니다.

+0

우리는 제안 된 솔루션에 대해 논의했고 그 솔루션을 고수했습니다. ! –

1

나는 당신의 접근 방법이 좋지 않다고 생각하지 않습니다. 또 다른 해결책은 각각 UserCompany이 고유 한 Entity 레코드 (따라서 엔티티 ID)를 갖는 추상 Entity 테이블을 갖는 것입니다. 하나의 Reputation 테이블에서 두 엔티티 간의 평판 만 추적합니다.

또 다른 방법은 사용자 ID, 회사 ID와 Reputation 테이블을 가지고이며, type (또는 direction, 또는 무엇이든은 모델에 논리적 인 것 같다)는 사용자에 의해 주어진 회사의 평판 여부를 나타내는 필드 , 또는 그 반대의 경우. 그래도 덜 정상화 된 것 같습니다.

관련 문제