2014-11-11 2 views
0

할당 된 도메인 (문자열) 사용자 이름과 반대되는 사용자를 나타 내기 위해서는 AI 정수가 더 좋습니다. 그러나 나는 '사용자'테이블에 자동 생성 된 사용자 ID와 고유 한 도메인 사용자 이름을 포함시킬 때 다른 테이블에서 FK로 표시해야하는 것을 어떻게 받아 들일 수 있습니까 ?? 예. 'userid'및 'domainname'또는 사용자 ID가있는 부서 표; 'userid'및 'domainname'또는 소유자로 'userid'가있는 하드웨어 테이블 ?? tnx ...도메인 사용자 이름 및 사용자 ID로 기본 키?

+0

정확히 무엇이 묻고 있는지 명확하지 않습니다 ... 테이블 구조에 대해 더 많은 정보를 제공하고이를 통해 무엇을 얻으려고합니까? –

+0

사용자, 하드웨어, 네트워크 포트/IP/MAC 주소, 위치, 소프트웨어를 추적합니다. 도메인 사용자가 아닌 사용자가 될 수 없으므로 도메인 사용자 ID를 고유 식별자로 사용하려고합니다. 테이블의 행에 자동 생성 ID 번호를 사용하는 것이 더 적절합니까?이것과 자신의 고유 한 도메인 사용자 계정 ID (varchar가 아닌 INT)를 사용하는 것이 과다한 일입니까? 예를 들어 도메인 사용자 계정 ID를 사용하는 것을 선호합니다. sdr35. 예를 들어, 사용자 테이블이있는 DB가 사회 보장 번호를 고유 한 기본 식별자/키로 사용할 수 있다면 대신 자동 INT ID를 사용하여 PK가 될 수 있습니까? ... tnx – ksdst1

답변

0

나는 정확한 아이디어가 아닌 아이디어를 줄 것이다.

Users : -

디자인의 예를 들어 "이 대답은 귀하의 질문에 대한 이해에 기반이다"

여기에 기본 키가 UserId하고 다른이 외국 키를 사용할 수 있습니다 표.

UserId | Usernames 

Department : 여기

기본 키가 DepartmentId하고 다른 테이블에서이 같은 외래 키를 사용할 수 있습니다.

기본 키가 여기에 당신은 외국인이이 HardwareId

입니다 :

또한 표 HardwareUsers

DepartmentId | UserId |DomainName 

테이블에서 UserId라는 외부 키를라고하는 키및 UserId

HardwareId | DepartmentId | UserId (optional) | Etc... 

OK, 각 테이블해야하고, 자신의 기본 키를 가지고 있어야하고이 테이블의 외래 키 때문에 당신이 테이블 Hardware에 기본 키가되기 위해 DepartmentIdUserId을 사용할 수 없습니다.

DepartmentId - 하드웨어 기반이 포함 된 부서를 알 수 있습니다.

UserId - (선택 사항), 당신은 단지 UserId

+0

사용자, 하드웨어, 네트워크 포트/IP/MAC 주소, 위치, 소프트웨어를 추적합니다. 도메인 사용자가 아닌 사용자가 될 수 없으므로 도메인 사용자 ID를 고유 식별자로 사용하려고합니다. 테이블의 행에 자동 생성 ID 번호를 사용하는 것이 더 적절합니까? 이것과 자신의 고유 한 도메인 사용자 계정 ID (varchar가 아닌 INT)를 사용하는 것이 과다한 일입니까? 예를 들어 도메인 사용자 계정 ID를 사용하는 것을 선호합니다. sdr35. 예를 들어, 사용자 테이블이있는 DB가 사회 보장 번호를 고유 한 기본 식별자/키로 사용할 수 있다면 대신 자동 INT ID를 사용하여 PK가 될 수 있습니까? ... tnx – ksdst1

+0

물론'unique domain id '와'SSS'를 pk로 사용할 수 있지만 그 값은 기본 키에서 반복되지 않을 것입니다. [varchar PK] (http://stackoverflow.com/questions/19299874/can-i-use-varchar-as-the-primary-key) 및 [best practice PK] (http://stackoverflow.com/questions)를 참조하십시오./337503/whats-the-best-for-primary-keys-in-tables) –

0

그냥 사용자 ID를 사용하여이 하드웨어의 소유자 또는 사용자를 알 수 있습니다. 이것은 database normalization의 핵심 구성 요소입니다. 다른 테이블에 사용자가 완전히 결정할 수있는 다른 정보가 포함되어 있으면 다른 레코드가 주어진 사용자에 대해 다른 주장을하는 불일치의 위험이 있습니다.

관련 문제