나는 2 개의 테이블, User
및 Employee
을 가지고 있습니다. 각 사용자에게는 User_ID
이 부여되며 이는 User
테이블의 기본 키이고 Employee
테이블의 외래 키입니다. Employee
테이블의 해당 속성을 기본 키로 사용할 수 있습니까?데이터베이스 특성을 기본 및 외래 키로 지정할 수 있습니까?
답변
두 테이블 사이에 일대일 대응 관계가있는 경우 세부 정보 테이블의 기본 키도 외래 키입니다. 만약 m 대 N의 관계를 가질 경우
master detail (1 : 1)
+----------+ 1:1 +-------------+
| PK id |<---o| PK FK id |
+----------+ +-------------+
| col1 | | col1 |
| col2 | | col2 |
| etc. | | etc. |
+----------+ +-------------+
는 접합 테이블은 m의 두 개의 기본 키 및 해당 테이블에 관련된 열을 갖는다. 이 열은 기본 키와 외래 키입니다. 접합 테이블의 각 복합 기본 키가 고유해야하므로,이 구성으로, 하나 개의 테이블에 레코드가 한 번만 다른 테이블의 특정 레코드에 링크 될 수 있다는
는 m : n
m_table junction
+----------+ 1:m +------------+ n_table
| PK id1 |<---o| PK FK1 id1 | n:1 +----------+
+----------+ | PK FK2 id2 |o--->| PK id2 |
| col1 | +------------+ +----------+
| col2 | | | | col1 |
| etc. | +------------+ | etc. |
+----------+ +----------+
참고. 이 경우
m : n
junction
+---------+
m_table | PK id |
+----------+ 1:m +---------+ n_table
| PK id1 |<---o| FK1 id1 | n:1 +----------+
+----------+ | FK2 id2 |o--->| PK id2 |
| col1 | | | +----------+
| col2 | +---------+ | col1 |
| etc. | | etc. |
+----------+ +----------+
, 기본 키 및 외래 키 제약 조건이 다른 열을 설정됩니다 : 당신이 고유하지 않은 짝 허용하려면, 접합 테이블에서 별도의 기본 키를 정의합니다. 또는 두 개의 외래 키와 하나의 분자 또는 다른 식별 속성을 사용하여 기본 키를 작성할 수도 있습니다. 일대일 또는 일대 제로 또는-하나 User
와 Employee
의 관계, 다음 예, Employee
테이블의 User_ID
이 외부 키가 될 수있는 경우 귀하의 경우에는
, (FK) 및 기본 키 (PK) 동시에. 즉, 사용자가 직원이 될 수도 있습니다.이 경우 직원 데이터가 사용자에게 연결됩니다. 직원이 아닌 경우 (외부 전문가 일 수 있음) 직원 기록이 첨부되지 않습니다. User_ID
이 FK이고 PK가 Employee
인 경우 각 사용자는 최대 하나의 직원 레코드를 첨부 할 수 있습니다. User_ID
이 FK 만 이었지만 테이블 Employee
에 PK가없는 경우 사용자는 여러 관련 직원 레코드를 가질 수 있습니다.
예. 예를 들어 모든 직원이 사용자이고 일부 사용자가 직원이 될 수 있도록하려는 경우이 작업을 수행합니다. 이것은 (0 또는 1) 하나의 관계가됩니다.
그렇지 않으면 다차원 관계에 대한 접합 테이블의 경우처럼 외래 키를 포함 할 수 있지만 외래 키와 같은 기본 키는 일반적으로 갖지 않습니다.
- 1. MySQL - 기본 키로 외래 키 사용
- 2. 기본 키로 INNER JOIN을 사용할 수 있습니까?
- 3. JPA 엔터티 외래 키를 기본 키로 매핑
- 4. ASP.NET MVC - 기본 키로 외래 키?
- 5. 다른 테이블의 외래 키로 사용되는 기본 키
- 6. UserName을 외래 키로 설정하십시오.
- 7. FluentNHibernate - 기본 키로 외래 키 매핑
- 8. 자식 테이블의 외래 키를 기본 키로 사용
- 9. 복수 속성을 외래 키로 삽입하십시오.
- 10. Web2py : 외래 키로 ID
- 11. MVC3 모델 외래 키로 바인딩하기
- 12. 외래 키로 어려운 작업
- 13. 외래 키로 검색 admin에
- 14. 외래 키로 외래 키로 하나 또는 여러 개의 매핑 매핑
- 15. Grails에서 외래 키를 기본 키로 매핑하는 방법은 무엇입니까?
- 16. 기본값을 지정할 수 있습니까?
- 17. GUID를 많은 테이블의 외래 키로 사용해야합니까?
- 18. Grails : 외래 키를 기본 키로 사용 하시겠습니까? 이러한면에서 :
- 19. Linq to SQL 디자이너는 복합 기본 키로 외래 키를 지원합니까?
- 20. SQL Server 기본/외래 키
- 21. 외래 키로 복합 기본 키의 한 열을 참조하십시오.
- 22. 대리 키를 외래 키로 사용
- 23. 에 대한 기본 키와 외래 키
- 24. mysql - 외래 키를 datetime 필드 유형으로 지정할 수 없습니다.
- 25. 관계형 데이터베이스 스키마에서 컬렉션 (예 : 배열, 목록)을 외래 키로 (이론적으로) 사용할 수 있습니까?
- 26. Sql Server CE 외래 키가 기본 키로 표시됩니다.
- 27. 데이터베이스 디자인 열 명명 규칙; 기본 및 외래 키
- 28. 많은 자식 테이블에서 외래 키로 사용되는 기본 키가있는 테이블 업데이트
- 29. 외래 키로 기본 키가 중복 정의 예외를 던졌습니다
- 30. 외래 키의 특정 필드에 대해 기본 외장 필드 값을 어떻게 지정할 수 있습니까?
Employee 테이블의 기본 키는 무엇입니까? 각 테이블에는 하나의 기본 키만 허용됩니다. 복합 기본 키 (둘 이상의 열)를 수행 할 수 있습니다. –