2010-04-21 4 views
3

관계형 데이터베이스와 내가 읽은 모든 자료를 기본 및 외래 키, 일반 양식 및 조인에 익숙하지 않지만 빠뜨린 모든 자료 생성 된 데이터베이스를 채 웁니다.CSV 파일에서 데이터베이스 (MySql)의 관련 테이블을 채우는 개념적 프로세스

필드가 관련 테이블과 일치하도록 CSV 파일을 어떻게 가져 옵니까?

맥주 데이터베이스를 만들려고하고 있고 각 줄마다 CSV 파일이 기록되어 있다고 가정 해 보겠습니다.

헤더 : 맥주, beer_name, 국가, 도시, 주, beer_category, beer_type, alcohol_content

기록 1 : 호이 저 - 부시, 버드 와이저, 미국, 세인트 루이스, 미주리, 창백한 라거 , 일반, 5.0 %

기록 2 : 호이 저 - 부시, 버드 라이트, 미국, 세인트 루이스, 미주리, 창백한 라거 빛, 4.2 %

기록 3 : 밀러, 밀러 라이트, 미국, 밀워키, WI, 창백한 맥주, 빛, 4.2 %

당신은 "맥주"테이블과 "맥주"테이블을 만들 수 있습니다. 가져올 때 테이블간에 기본 키를 어떻게 연결합니까?

답변

3

테이블을 만들 때 기본 키 관계와 외래 키 관계를 정의합니다. 관계를 침범하는 무언가를하려고하면 데이터베이스가 오류를 던지지 않는 한 설정이 끝나면 잊어 버릴 수 있습니다.

예를 들어, 부모 테이블에 값이없는 하위 (외부) 테이블에 레코드를 추가하려고하면 관계가 올바르게 설정된 경우 데이터베이스에 불만이 표시됩니다.

브루어스 테이블에 Anheuser-Busch를 이미 추가하지 않았다면 레코드 1을 Beer 테이블에 추가하는 것은 실패합니다.

당신의 테이블 설정에 대한 제안 : 모든 맥주를 대체 할

Brewer 
    1 Anheuser-Busch   United States Mo St. Louis 
    2 Miller Brewing Company United States WI Milwaukee 

그런 다음 CSV 파일을 바이올린 (그들 중 너무 많은이 아니기 때문에) 그런 다음 수동으로 양조를 추가

Brewer 
    id   bigint 
    name  varchar(50) 
    country varchar(50) 
    state  varchar(10) 
    city  varchar(50) 


Beer 
    id   bigint 
    brewerId bigint 
    name  varchar(70) 
    category varchar(50) 
    type  varchar(50) 
    alcohol decimal(3,1) 

Set Brewer.Id as the Primary Key of the Brewer table. 
Set Beer.Id as the Primary Key of the Beer table. 
Then create a foreign key relationship between Brewer.Id = Beer.brewerId 

을 세부 정보를 브루어의 해당 id와 함께 사용하여 맥주 표를 채우십시오.

Beer 
    1 1 Budweiser Pale lager Regular 5.0 
    2 1 Bud Light Pale lager Light  4.2 
    3 2 Miller Lite Pale lager Regular 4.2 

So : 브루어가 각 맥주를 브루어 테이블의 브루어에 연결합니다. 그것은 외래 키입니다. 맥주가 자동으로 모든 맥주 정보를 가져옵니다. 왜냐하면 양조업자의 ID와 일치하기 때문이며 테이블을 만들 때 그 관계를 설정하기 때문입니다.

  • 맥주 1 (와이저)은 1 (앤 하이 저 부시)를 브루어 속하는
  • 2 (버드 라이트)은 1 (앤 하이 저 부시)
  • 맥주 3 (밀러 라이트) 브루어 속하는 브루어 속하는 맥주 2 (밀러)

이렇게하면 정말 멋지게 할 수 있습니다. Miller가 다른 회사에서 인수했다고 가정하면 ... Brewer 테이블의 세부 사항을 변경하는 것만으로 Miller 소유의 모든 맥주가 이제 새로운 맥주 제조업체에 속합니다. Brewer, 주 등에서 매출을 계산할 수도 있습니다.

기본 규칙은 기본 키와 외래 키가 부모 - 자식 관계와 유사하다는 것입니다. 하위 항목은 상위 항목의 ID를 저장합니다. 이렇게하면 각 학부모는 여러 자녀를 가질 수 있습니다. 훨씬 더 복잡한 작업을 수행 할 수는 있지만 대부분의 데이터베이스 솔루션에 대한 시작 방법은 매우 좋습니다.

+0

마이클, 응답 해 주셔서 감사합니다. 나는 너의 충고로 놀아왔다. 해결책은 충분히 간단합니다. 전에 고려하지 않은 것에 놀랐습니다. –

+0

안녕하세요, 제 답변이 유용하다고 판단되면 수락으로 표시하십시오. –

관련 문제