문제

여기서 두 테이블의 구조 (굵게 표시되는 기본 키 및 이탤릭 텍스트의 외래 키)

service_agreements ( ID , client_id, 금액, date_begin, 지속 시간, * services_id_1 *, * services_id_2 *, * services_id_3 *, * services_id_4 *) 서비스 ( ID , date_provided, 설명, staff_person)

테이블 뒤에있는 아이디어는 회사가 서비스를 최대 4 번 제공하는 계약을 기반으로합니다. 그래서 보시면 Service_Agreements 테이블 (Services_id_1, ...)의 네 필드는 서비스 테이블 (ID 필드)과 4 개의 일대일 별도의 관계가 있습니다. 일반적으로 두 테이블 간의 관계 만 보았 기 때문에 조금 비정상적인 것 같습니다. so.i 이것이 비정상적이지 여부를 알고 있습니다./ P>

도움이 되었습니까?

해결책

구조는 훨씬 더 좋을 수 있습니다 :

service_agreements ( ID , client_id, 금액, date_begin, 지속 시간);

서비스 ( ID , date_provided, 설명, staff_person);

service_agreements_services ( ID , enum (service1, service2 등), type enum (service1, service2 등), service_agreement_id , service_id );

새 테이블, service_agrements_services service_agreement와 services간에 많은 관계를 추가합니다.

장점 :
1) 제공 한 모든 새로운 서비스에 대해 새로운 삽입 (일반적으로 업데이트보다 오버 헤드가 적은)
2) 더 큰 서비스를 제공 할 수도 있습니다 :)
3) 테이블 관계가 쉽습니다.

감사합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top