0

나는 다음과 같은 시나리오가 :두 번째 부분이 거의 구별되지 않는 복합 키를 구현하기위한 전략입니다. 엔티티 프레임 워크 코드 첫 번째

Atom 법인은 일반적으로 고유 및 기본 키와 같은 단일 AtomID 필드를 사용하여 데이터베이스에 저장 될 수 있습니다. . In rare cases the Atom needs to be split. In that case a second record must be created in the database table with an identical AtomID but a discriminating SplitID`.

기본적으로 SplitID이 거의 구별되지 않는 AtomIDSplitID의 합성 키가 필요합니다. SQLServerCompact4 데이터베이스에서 제공하는 AutoID 기능을 잃어 버리는 것이 싫지만 Fluid API의 Atom 엔터티에 대한 복합 키를 정의 할 때 발생합니다.

이 문제의 가장 좋은 방법은 무엇입니까?

+0

"데이터베이스 테이블에 두 번째 레코드를 만들어야합니다."당신은 Atom 테이블을 의미합니까? 그래서 분할에는 같은 필드가 있습니까? –

+0

테이블이 원래 채워지거나 추가 될 때,'Atoms'는 고유합니다. 나중에 오류가 발생하면 두 개의 다른 레코드에서 원자를 splt해야 할 필요가 생길 수 있습니다. 물론 다른 필드에 대해 differenet 값을 갖습니다. 그러나 그 기록이 한때 하나라는 것을 알 수 있다는 것이 무엇보다 중요합니다. – Dabblernl

+0

자기 참조 FK 이외의 다른 방법은 보이지 않습니다. –

답변

1

외래 키가있는 테이블을 새로 만들어야합니다. AtomIDSpiltID을 구분하여 두 테이블의 관계를 표시해야합니다.

+0

Atoms 테이블을 쿼리 할 때마다 Join을 사용하지 않아도 되겠습니까? Atom이 거의 분리되지 않는다면 이는 비효율적 인 것처럼 보입니다. – Dabblernl

+0

@Dabblernl : .. 그래, 네 말이 맞아. –

+0

나는이 방법으로 그것을 구현했다. 성능에 미치는 영향을 알 수 있습니다. – Dabblernl