2013-04-18 1 views
0

이론적 인 렌터카 회사의 간단한 데이터베이스를 만들려고합니다. 다음 그림은 내가 현재 가지고있는 관계를 보여줍니다. 그러나MS 액세스 - 기본 관계 오류

enter image description here

, 나는 단일 고객에 하나 개 이상의 자동차를 할당 할 때, 나는 다음과 같은 오류 메시지가 :

enter image description here

사람이 이유에 관해서는 저를 조언 할 수 있다면 올라오고 무엇을 바꿀 것인가? 더 많은 정보가 필요하면이 정보를 알아내는 것이 필요하다면 나는 매우 위대 할 것이다! 감사합니다

답변

1

ER 다이어그램이 잘못되었습니다. Zero, One Customer -> Many Cars를 원한다고 가정하면 적절한 패턴은 Many의 테이블에 0,1의 외래 키를 삽입하는 것입니다.

그래서 Cars 테이블에는 CustomerId의 외래 키가 있어야합니다.

고객 테이블은 정상적인 경우 자동차에 대해 전혀 알지 못합니다.

편집 : 요구 사항/모델을 살펴보면 많은 경우가 많습니다. 즉, 시간이 지남에 따라 많은 고객이 자동차 나 자동차를 임대합니다. 이 경우 정규성을 유지하려면 접합 표가 필요합니다. 두 개의 기본 키 인 CustomerId와 CarId가있는 고객. 임대 한 날짜와 같은 관계에 대한 정보를 입력하는 곳이기도합니다.

+0

도움 주셔서 감사합니다. – h1h1

2

CustomerID은 기본 키이며 두 번째 줄에 복제됩니다. 기본 키는 고유해야합니다.

고객과 예약간에 1 대 1 관계를 만들었습니다. 즉, 모든 고객은 단 하나의 예약 만 할 수 있으며 모든 예약에는 오직 하나의 고객 만있을 수 있습니다. 그래서 다른 차량으로 예약을 추가하려면 CustomerID을 복제해야합니다.

+1

이것은 더 나은 대답입니다. junction 테이블은 필요하지 않습니다. 예약은 자동 번호 PK 만 있으면됩니다. 원하는대로 고객에게 많은 예약을 추가 할 수 있으며, 각 예약에 차를 추가 할 수 있습니다. 차종에 따라 동일한 차를 예약 할 수도 있고 다른 차를 사용하여 많은 예약을 고객에게 연결할 수도 있습니다. 내가 올바르게이 지점 테이블을 필요로하지 않지만 테이블 예약에 사소한 변화가 지적 된 이후이 게시물에 투표 아래로 Going의 게시물을 투표. 일단 완료되면 "많은"예약이 가능하며 우리는 그 예약에 자동차를 부착하기 만하면됩니다. –