컴퓨터와 해당 사용자를 나타내는 데 필요한 데이터베이스를 작업하고 있습니다. 각 컴퓨터는 여러 사용자를 가질 수 있으며 각 사용자는 여러 컴퓨터와 연결할 수 있으므로 고전적인 다 대다 관계입니다. 그러나 "기본"사용자의 개념이 필요합니다. 기본 사용자와 함께 모든 컴퓨터를 기본 사용자와 함께 나열 할 수 있어야합니다. 데이터베이스에서 가장 좋은 방법이 무엇인지 잘 모르겠습니다."기본"이 포함 된 다 대다
1) 현재 수행중인 작업 : 테이블을 부울 IsPrimary 열과 연결 중입니다. 가입하려면 ON (c.computer_id = l.computer_id AND l.is_primary = 1)과 같은 것이 필요합니다. 작동하지만 데이터가 컴퓨터 당 한 명의 기본 사용자 만 갖도록 제한하는 것이 쉽지 않기 때문에 잘못 생각합니다.
2) 사용자 테이블의 모든 행은 컴퓨터 테이블의 사용자 행을 직접 가리키는 필드로, 주 사용자가 아닌 사용자를 나타냅니다. 이것은 컴퓨터 당 1 차 제약을 더 잘 나타내지 만 컴퓨터 사용자의 목록을 더 세게 얻습니다.
3) 연결 테이블의 행에 연결되는 컴퓨터 테이블의 필드. 이상하게 느껴진다 ...
4) 다른 것?
이 관계를 설명하는 '관계형'방법은 무엇입니까?
편집 : @ Mark Brackett : 세 번째 옵션은 얼마나 멋진 지 보여 주었기 때문에 나에게 이상하지 않습니다. 나는 어떤 이유로 복합 외래 키를 사용하지 않는다고 생각했기 때문에 링크 테이블에 ID 컬럼을 추가하여 작동하도록해야한다고 생각했습니다. 좋은데, 고마워!
@ j04t : 차갑고, 지금 # 3에 다행입니다.
의 단순함을 표시하려면? – albertein
연결 테이블에 주어진 컴퓨터의 모든 사용자가 포함되어 있지 않기 때문에. –