2014-04-08 2 views
0

SQL의 기본 키에 대한 빠른 질문이 있습니다. 하나의 테이블 (Patient)에 기본 키가 있고 다른 기본 키가있는 다른 테이블 (Facility)이 있습니다. 내가하고 싶은 일은 환자의 기본 키를 가지고 시설 테이블에 정확한 기본 키 (데이터 포함)를 갖도록 연결하는 것입니다. 어떻게해야합니까? 사전에 도움을 주셔서 감사합니다, 그것은 대단히 감사합니다!동일하지만 두 개의 다른 테이블에있는 두 개의 기본 키

+0

당신이 시도한 몇 가지 질문을 보여주십시오. – Rezoan

+0

당신은 단지 JOIN이 필요한 것처럼 들립니다. 자세한 내용은 [이 기사] (http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/)를 참조하십시오. –

+0

변경 테이블 시설 외래 키 (PatientID) 참조 환자 (PatientID) – user3474069

답변

1

이것은 흥미로운 종류의 관계입니다. 하지만 당신은 두 테이블에 동일한 ID를 삽입을 수행 할 수 있습니다

INSERT INTO Parient(ID, NAME)  VALUES (5, 'Mike'); 
INSERT INTO Facility(ID, LOCATION) VALUES (5, 'San Francisco'); 

당신은 ALOS 첫 삽입의 순서를 사용할 수있는 다음 두 번째 삽입 (현재 값)에 대해 생성 새로운 ID를 사용합니다.

참고 :이 ID 동기화 방법은 권장하지 않습니다. 더 나은 방법은 데이터베이스가 자동 증분 시퀀스를 사용하여 데이터베이스에 고유 ID를 할당 한 다음 외래 키 제약 조건을 Patient 테이블에 FACILITY_ID을 추가하거나 일대일 관계를 구현하는 Facility 테이블에 PATIENT_ID을 정의하는 것입니다.

create table hospitalization ( 
    patient_id int not null, 
    facility_id int not null, 
    date_start date not null, 
    date_end date 
); 

이 표준은 특성을 가진 많은 관계로 많은이며, 환자가 여러 번 병원에 입원 할 수 있으며, 각 시설이 많이있을 수 있음을 의미합니다 :

+0

내가하려고하는 것은 Patient 테이블에 PatientID 420이 있고, 필자의 Facility 테이블에서 PatientID 420이 정확히 같을 수 있기를 원합니다. 그래서 기본적으로 환자 (환자 테이블)를 위치 (시설 테이블)에 지정하려고합니다. – user3474069

+0

다음과 같이 데이터를 선택할 때 할 수 있습니다 :'SELECT p.name, f.location parient p, facility f WHERE p.id = f.id'. –

+0

예.하지만 시설 테이블의 기본 키가 FacilityID인데 환자 테이블처럼 시설 테이블에 PatientID (환자 테이블의 기본 키)가 없습니다. – user3474069

1

하는 것은 다른 테이블 두 키를 포함 (예를 들어 입원를) 추가 환자.

관련 문제