옵션 1
수는 Crash
ES없이 존재 Person-Bike
조합 (신에게 감사)이이 있다고 가정하자. 따라서 자전거가 특정 인원에 의해 소유되지 않는다고 가정 할 때 바이너리 관계 (교차점 표) PersonBike
을 작성하여 사람과 자전거에게 FK를 부여 할 수 있습니다. EF는이 모델을 연관 클래스없이 다 - 대 - 다 관계로 처리 할 수 있습니다.
그러면 나빠지는 사람 - 자전거 조합이 충돌에 연루 될 수 있습니다. 하나의 충돌로 2 가지 이상의 조합이있을 수 있습니다. 기본적으로 PersonBikes
을 Crash
에 넣을 수 있습니다. 이 경우 모델에 연관 클래스가 전혀 없을 것입니다. 그러나 Crash
과 PersonBike
사이의 연결에 대해 자세히 알고 싶다면 충돌 사고가있는 사람은 CrashPersonBike
에서 FK 's ~ Crash
및 PersonBike
사이의 연결 표가 필요하며 연관성을 설명하는 하나 이상의 필드 (유죄 예/아니오 등)가 필요합니다. EF 모델에는 연관 클래스가 필요합니다. Person
가 Bikes
모음 (테이블 자전거는 사람에 대한 FK를 가지고)하자 :
옵션 2
자전거 특정 소유자 (명)가 있습니다. 이제는 자전거가 사람을 결정하기 때문에 관련된 자전거에서만 충돌을 설명하기에 충분합니다. 따라서 Crash
은 Bikes
콜렉션을 가질 수 있습니다 (다시 말하면, 모델에 연관 클래스 없음). 또는 위에 설명 된 것과 같은 세부 사항을 포함하는 연관 클래스 CrashBike
.
또는 추가 사항없이 모델의 연관 클래스 (CrashPersonBike
)를 필요로하는 "true"로 삼항 관계 옵션 3.
모든 경우에 동일한 사람 (또는 옵션 1과 3의 자전거)이 한 번의 충돌에 연루되지 않도록 비즈니스 논리가 필요합니다. 옵션 1과 2는 충돌과 별도로 사람과 자전거의 조합을 설명 할 수 있다는 점에서 추가적인 이점이 있습니다. 그것이 1인지 2인지는 자전거 소유권에 달려 있습니다.
Gert, 답장을 보내 주셔서 대단히 감사합니다.이제는 내 응용 분야에서 어떤 것이 더 잘 맞는지 생각할 문제가 될 것입니다. – polonskyg
안녕하세요, 옵션 1 ('Crash'에'PersonBike's 컬렉션 포함)을 "모델에 연관 클래스 없음"으로 관리하는 방법을 이해하려고합니다. 'PersonBike'를 FK에'Crash'라고하면 PersonBike가 엔티티가되고'Person'과'Bike'의 직접적인 다 - 대다 관계를 잃게됩니다. 그걸 피할 수있는 방법이 있습니까? 나는 EF4를 사용하고 있습니다. – nmclean