저는 Visual Studio에서 여러 테이블에 대해 2 열의 복합 인덱스를 만들려고합니다. 2 개의 열이 있습니다. UserID는 모든 테이블에 있으며 외부 키 역할을합니다. 다음, 각 테이블은 다음과 같이 ... 같은 전화, 주소 등 개체의 부분을 참조하기 위해 자신의 키가 : 사용자가 1 개 이상의 주소 및 1 개 이상의 휴대폰을 가질 수 복합 색인 : 열의 순서가 sql server/linq에서 sql로 바뀌는가?
TablePhones:
PhoneID | UserID | PhonePrefix | PhoneNumber | PhoneExtention
TableAddresses:
AddressID | UserID | AddressStreet1 | AddressStreet2 | AddressCity...
주
번호.내가 SQL에 LINQ와 얻을 수있는 곳 절 쿼리 객체는 다음과 같이 사용하고 있습니다 : 순간
read queries:
where x.UserID == TheUserID
update/delete queries:
where x.UserID == TheUserID && x.PhoneID = ThePhoneID
을, 기본 키는 PhoneID 및 AddressID에있는 내가 찾고 있어요 PhoneID/UserID 및 AddressID/UserID에 복합 색인을 작성하십시오. 데이터베이스의 열 순서는 그대로 또는 모든 테이블의 첫 번째 위치에서 UserID를 이동해야합니까?
제안 해 주셔서 감사합니다.
UserID가 고유하지 않은 경우 어떻게됩니까? 기본 키에 문제가 있습니까? – frenchie
나는 당신이 옳은지 잘 모르겠다. 이미 기본 키가 있다고 가정합니다. – a1ex07
테이블 구조를 재 설계하고 복합 기본 키를 사용하려는 경우 다음 사항을 고려하십시오. 다른 테이블의 이러한 테이블에서 레코드를 참조해야하는 경우 대리자 PK 및 고유 제한 조건을 (userId, PhoneID)와 (UserId, AddressId)가 복합 PK가되는 것 – a1ex07