>

기본 키이므로 들여 쓰기가 증가하는 고유 한 ID를 가진 Expirations라는 새 테이블을 만들었습니다. 또한이 테이블이 두 개의 다른 테이블에서 데이터를 가져 오기를 원하므로 InsuranceId 및 LicenseId에 대한 열을 작성하여 두 열 모두 외부 키를 사용하여 해당 테이블의 데이터 (일명 ID)를 연결합니다 (Insurance 및 License) . Expirations Table에 내 데이터가 자동으로 채워지지 않는 이유는 무엇입니까? 나는 이것이 모든 열에 대해 "다 대일"로 생성되었다고 생각합니다. Expiration 테이블에 모든 보험 ID 및 라이센스 ID를 나열하기를 원하기 때문에 이것이 올바른지 확실하지 않습니다.

내가 여기서 뭘 잘못하고 있는지 아는 사람 있나요?

  • 답변 # 1

    외부 키는 테이블이 자동으로 채워지는 것을 의미하지 않습니다.

    사람 테이블과 회사 테이블, company_person 테이블을 가지고 어떤 사람이 어떤 회사에서 일하는지 보여줍니다. 이제 세 회사와 네 사람을 삽입합니다. 이는 company_person 테이블이 3 x 4 = 12 개의 레코드로 채워지는 것을 의미하지는 않습니다 (즉, 모든 사람이 모든 회사에서 일함). 말이되지 않습니다.

    외부 키는 문제의 테이블에 유효하지 않은 데이터 (예 : 존재하지 않는 사람 또는 존재하지 않는 회사)를 삽입 할 수 없다는 것을 보증합니다. 레코드를 직접 삽입해야합니다.

  • 답변 # 2

    기본적으로 만기 테이블은 팩트 테이블과 같으며 어두운 테이블에서 Insurancetable (1 차 키로 InsuranceId) 및 Licencetable (PK로 Licenceid) 인 데이터를로드하려고합니다.

    그러나 InsuranceId와 licenseId의 조합이없는 경우 어떤 Insuranceid가 어떤 LicenseId에 속하는지 어떻게 알 수 있습니까?

    만료 테이블이 비어 있으면 먼저 데카르트 결과 인 insurancetable과 licensetable 사이의 교차 조인을 수행해야하지만 실제 환경에서는 의미가 없으므로 그렇게하고 싶지 않습니다.

    내 설명이 도움이되기를 바랍니다.

관련 자료

  • 이전 java - JPanel 내부의 이미지와 텍스트 사이의 공백을 제거하는 방법은 무엇입니까?
  • 다음 c++ - 처음 쓰기 후 바이너리 파일에 추가