나는 3 개의 열 테이블 중 어느 것도 고유하지 않은 테이블을 가지고 있습니다. 그래서 uniqueidentifier로 테이블에 ID 열을 추가하고 기본 테이블로 만들었습니다. 그냥 하나의 Quesion : 그 열에 동일한 값을 가진 두 개의 행이 테이블에 추가되면, 두 번째 행은 어떻게됩니까? 그것이 추가 될 것인가 아닌가? 어떻게하면 내 시나리오에서 그런 일들을 피할 수 있습니까?내 식별기의 고유 식별자 철학
0
A
답변
1
ID가 아닌 세 개의 열에 고유 제한 조건이없고 기본 키의 일부가 아닌 경우 정확히 동일한 값을 가진 여러 행을 추가 할 수 있습니다.
행이 중복되지 않도록하려면 적어도 세 개 이상의 열 중 하나 이상에 대해 고유 제한 조건을 적용하는 것이 가장 좋습니다. 어떤 이유로 든 할 수 없다면 스키마를 게시하고 문제가 더 도움이 될 것이라고 생각하는 위치에 게시해야합니다.
고유 제한 조건을 사용할 수없는 경우 중복을 방지하는 한 가지 방법은 다음과 같습니다. 레코드를 삽입 할 때 먼저 레코드가 이미 있는지 확인하고 이미 존재하는 경우, 당신은 그것을 다루기를 원합니다.
0
두 번째 것이 추가됩니다. 고유 한 제한 조건을 작성하여이를 피할 수 있습니다. 당신의 목표는 세 개의 열에서 고유성을 적용 할 경우
1
는 당신은 기본적으로 두 가지 구조의 선택의 여지가 :
Create Table tbl_1
(
ColA int
,ColB varchar(32)
,ColC varchar(256)
,Primary Key (ColA, ColB, ColC)
)
GO
또는
Create Table tbl_2
(
ID int identity(1,1) Primary Key
,ColA int
,ColB varchar(32)
,ColC varchar(256)
,Unique (ColA, ColB, ColC)
)
GO
더 나은 기술 중 하나 장점이 있습니다 데이터의 성격과 데이터의 상호 작용에 달려 있습니다. 그러나 두 구조에서 주어진 열의 값은 반복 될 수 있지만 세 열의 조합은 각 행마다 고유해야합니다.
반면에 유일하거나 다를 수있는 데이터에 대해 PK를 설정하려는 경우 구조 2를 사용할 수 있지만 고유 제한 조건은 사용할 수 없습니다. 이 경우 각 행은 ID 열에 의해 고유하게 식별되지만 다른 열의 값은 자유롭게 반복 될 수 있습니다.
관련 문제
- 1. 고유 식별자
- 2. 로컬 고유 식별자
- 3. 자동 증가 고유 식별자
- 4. HTML 요소의 고유 식별자
- 5. 클라이언트 ID : 고유 식별자 :
- 6. Java JLabel - 고유 식별자 추가
- 7. Jquery 추가 기능에 고유 식별자
- 8. ASP.NET 컨트롤의 고유 식별자 delimiter
- 9. 고유 한 영구 제어 식별자
- 10. 스프링 철학
- 11. EF4 및 서버 생성 고유 식별자 Id
- 12. Windows의 사용자 프로필에 대한 고유 식별자
- 13. Objective-c iPhone NSTimer 고유 식별자
- 14. typeid를 통한 클래스의 숫자 고유 식별자
- 15. iPhone 찾기 웹 앱을 사용한 고유 식별자
- 16. GUID : VARCHAR (36)에 비해 고유 식별자
- 17. 각 휴대 전화의 고유 식별자 Android
- 18. 스크롤 막대 철학
- 19. Android : 시장 디자인 철학?
- 20. SVN 병합 - 철학
- 21. 장고 : 내 장고 프로젝트에서 식별자
- 22. 고유 식별자 내에 마침표가있는 항목을 처리하기위한 OData URI 규약?
- 23. Django : request.META 값을 기반으로 사용자에 대한 고유 식별자 생성
- 24. 고유 값은 내 모델에서
- 25. SQL Server의 고유 식별자 열에 클러스터 된/클러스터되지 않은 인덱스
- 26. 현재 로그인 한 AD 사용자의 고유 식별자 토큰을 가져옵니다.
- 27. Google GData ContactEntry 객체의 고유 ID (식별자)는 무엇입니까?
- 28. ASP.NET 웹 사용자 컨트롤에서 고유 한 자바 식별자 보장
- 29. 고유 ID 또는 SQL Server 2005의 뷰에 대한 식별자
- 30. 고유 식별자 생성은 대부분 UUID와 유사하지만 네임 스페이스 검사와 같습니다.
안타깝게도 Andy는 없습니다. 아무도 정말 독특하지 않습니다! – aaaaaaaaaaaa
@aaaaaaa 그 중 3 명은 어떨까요? –