2012-11-26 6 views
0

사용자가 여러 팀 (30 명 미만)으로 등록했습니다.Oracle - 사용자 설정 저장

UserTeam 테이블 -처럼 내가 VARCHAR로이 저장에 대해 어떻게 사용자 아이디, TeamId

"123 : 0; 124 : 1; 155 : 1"123, 124, 155 팀 식별자이며, 더 좋은가 방법? 아니면 그냥 "124 : 155"라고하면 허가를받은 팀원을 저장하는 것입니다.

UserScore - UserId, ActivityId, ScoreId, TeamId 's?

오라클 데이터베이스에 대해 무엇을 제안합니까?

편집 : 팀의 총 수는 수천 또는 뭔가 수십 될 수 있지만, 사용자에게 할당 된 팀의 총 수는 데이터 모델을 설계보다 30

+0

대다수 관계 테이블을 사용합니다. – GuiGi

+0

@GuiGi 설명해 주시겠습니까? – user1831003

+0

그것은 Robert Merkwürdigeliebe가 대답 한 것입니다. 엔티티 테이블에 외래 키 제약 조건을 둔 별도의 테이블에 관계를 배치하십시오. – GuiGi

답변

1

를 사용하여 정규화 규칙이 될 것입니다. 거기에서 성능 저하의 관점에서 비정규 화가 필요합니다.

**User** 
UserId 
UserData 

**Team** 
TeamId 
TeamData 


**UserTeam** 
UserId 
TeamId 

foreign key constraints to user and team table 

**UseScore** 
UserId 
TeamId 
ActivityId 
Score 

foreign key constraints to user, team and activity table 
+0

그래서 ActivityId와 Score가 반복 될 것입니다. 각 점수에 대해 30 행을 의미할까요? – user1831003

+0

저장해야하는 정보, 기능 사양에 전적으로 의존합니다. 사용자의 모든 활동에 대한 점수를 저장해야합니까? –

+0

기능적 사양이 완전히 명확하지 않다고 생각합니다. 그러나 varchar2 필드에 CSV 문자열로 데이터를 저장하는 것은 IMHO로가는 길은 아닙니다. –