할당 된 도메인 (문자열) 사용자 이름과 반대되는 사용자를 나타 내기 위해서는 AI 정수가 더 좋습니다. 그러나 나는 '사용자'테이블에 자동 생성 된 사용자 ID와 고유 한 도메인 사용자 이름을 포함시킬 때 다른 테이블에서 FK로 표시해야하는 것을 어떻게 받아 들일 수 있습니까 ?? 예. 'userid'및 'domainname'또는 사용자 ID가있는 부서 표; 'userid'및 'domainname'또는 소유자로 'userid'가있는 하드웨어 테이블 ?? tnx ...도메인 사용자 이름 및 사용자 ID로 기본 키?
답변
나는 정확한 아이디어가 아닌 아이디어를 줄 것이다.
표 Users
: -
디자인의 예를 들어 "이 대답은 귀하의 질문에 대한 이해에 기반이다"
여기에 기본 키가 UserId
하고 다른이 외국 키를 사용할 수 있습니다 표.
UserId | Usernames
표 Department
: 여기
기본 키가 DepartmentId
하고 다른 테이블에서이 같은 외래 키를 사용할 수 있습니다.
기본 키가 여기에 당신은 외국인이이 HardwareId
입니다 :
또한 표 Hardware
Users
DepartmentId | UserId |DomainName
테이블에서 UserId
라는 외부 키를라고하는 키및 UserId
HardwareId | DepartmentId | UserId (optional) | Etc...
OK, 각 테이블해야하고, 자신의 기본 키를 가지고 있어야하고이 테이블의 외래 키 때문에 당신이 테이블 Hardware
에 기본 키가되기 위해 DepartmentId
및 UserId
을 사용할 수 없습니다.
DepartmentId
- 하드웨어 기반이 포함 된 부서를 알 수 있습니다.
UserId
- (선택 사항), 당신은 단지 UserId
사용자, 하드웨어, 네트워크 포트/IP/MAC 주소, 위치, 소프트웨어를 추적합니다. 도메인 사용자가 아닌 사용자가 될 수 없으므로 도메인 사용자 ID를 고유 식별자로 사용하려고합니다. 테이블의 행에 자동 생성 ID 번호를 사용하는 것이 더 적절합니까? 이것과 자신의 고유 한 도메인 사용자 계정 ID (varchar가 아닌 INT)를 사용하는 것이 과다한 일입니까? 예를 들어 도메인 사용자 계정 ID를 사용하는 것을 선호합니다. sdr35. 예를 들어, 사용자 테이블이있는 DB가 사회 보장 번호를 고유 한 기본 식별자/키로 사용할 수 있다면 대신 자동 INT ID를 사용하여 PK가 될 수 있습니까? ... tnx – ksdst1
물론'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) –
그냥 사용자 ID를 사용하여이 하드웨어의 소유자 또는 사용자를 알 수 있습니다. 이것은 database normalization의 핵심 구성 요소입니다. 다른 테이블에 사용자가 완전히 결정할 수있는 다른 정보가 포함되어 있으면 다른 레코드가 주어진 사용자에 대해 다른 주장을하는 불일치의 위험이 있습니다.
정확히 무엇이 묻고 있는지 명확하지 않습니다 ... 테이블 구조에 대해 더 많은 정보를 제공하고이를 통해 무엇을 얻으려고합니까? –
사용자, 하드웨어, 네트워크 포트/IP/MAC 주소, 위치, 소프트웨어를 추적합니다. 도메인 사용자가 아닌 사용자가 될 수 없으므로 도메인 사용자 ID를 고유 식별자로 사용하려고합니다. 테이블의 행에 자동 생성 ID 번호를 사용하는 것이 더 적절합니까?이것과 자신의 고유 한 도메인 사용자 계정 ID (varchar가 아닌 INT)를 사용하는 것이 과다한 일입니까? 예를 들어 도메인 사용자 계정 ID를 사용하는 것을 선호합니다. sdr35. 예를 들어, 사용자 테이블이있는 DB가 사회 보장 번호를 고유 한 기본 식별자/키로 사용할 수 있다면 대신 자동 INT ID를 사용하여 PK가 될 수 있습니까? ... tnx – ksdst1