나는 특정 사이트의 웹 스크래핑을 수행하고 그 결과를 데이터베이스에 저장하려고 노력 해왔다. 데이터에 대한 원래의 가정은 상당히 합리적인 복합 기본 키 (대개 2 ~ 3 개 필드 만 포함)를 사용할 수있는 스키마를 허용했지만 시간이 지남에 따라 데이터에 대한 원래의 가정이 잘못되어 기본 키가 잘못되었음을 깨달았습니다. 내가 생각하기에 독특했던만큼, 점점 더 많은 분야를 포함하도록 천천히 확장 해왔다. 사실, 나는 최근에 그들의 데이터베이스에 아무런 제약이 없다고 믿게되었다.거대한 합성 기본 키 또는 고유 ID를 사용해야합니까?
오늘은 마침내 내 테이블 중 하나에 대한 기본 키를 확장하여 해당 테이블의 모든 필드를 포함 시켰습니다. 이제 나는 물어볼 좋은 시간이라고 생각했습니다. 자동 증가 열을 추가하는 것이 더 낫습니다. 유일한 ID이거나 전체 테이블에 복합 기본 키를 남겨 두는 것입니까?
그냥 guid (SQL Server의 uniqueidentifier 형식)를 사용하십시오. –
@David : ** ** ** SQL Server에서 GUID를 사용하지 마십시오. 악마 님의 것입니다. ** 정말 정말 ** 클러스터 된 키 성능에 좋지 않습니다. PK는 기본적으로 CK입니다. Kim Tripp의 글을 읽으십시오 : http://www.sqlskills.com/BLOGS/KIMBERLY/post/GUIDs-as-PRIMARY-KEYs-andor-the-clustering-key.aspx –
@marc_s GUID가 가장 좋은 많은 경우가 있습니다 접근. 우리가 기사를 인용하기 때문에, http://www.sql-server-performance.com/articles/per/guid_performance_p1.aspx NEWID() 대신 NEWSEQUENTIALID()를 사용하면 색인 작성에 도움이됩니다. http://www.fotia.co.uk/fotia/DY.19.NewSequentialId.aspx –