2016-11-11 1 views
1

엔티티 중 하나가 User이고 해당 속성 중 하나가 이론상 사용자에게 프로그래밍 언어 목록을 보유해야하는 programming_languages 인 데이터베이스를 설계하려고합니다. 알고있어. 셀이 단일 값만 가질 수 있기 때문에 이러한 데이터베이스를 설계하는 최선의 방법은 무엇입니까? 각 행에 사용자의 ID와 그/그녀가 알고있는 언어 중 하나를 보유 할 별도의 테이블을 만들어야합니까? 아니면 더 나은 방법이 있습니까?여러 속성 값을 사용하여 데이터베이스 엔터티 디자인

답변

2

필드에 값이 여러 개인 경우 데이터가 정적이며 데이터베이스에서 변경되지 않는 경우, 즉 데이터베이스에서 필드를 읽고 나중에 처리하는 경우에만 유용합니다.

userID와 Language로 별도의 테이블을 만드는 것이 더 좋습니다. 이 둘의 조합이 기본 키가됩니다. 이것은 데이터베이스 정규화에 따른 규칙입니다. 정상화 후

UserID   Language 

User1   a,b,c 
User2   x,y 

UserID   Language 

User1   a 
User1   b 
User1   c 
User2   x 
User2   y 
관련 문제