구조화 데이터베이스를 관계형

데이터베이스의 관계를 생각해 보자 하나에 한 경기에 선수들이 또 다른 (예를 들어, 각 선수의 친구였던을 확인하고 각 선수의 적을했던).

  

첫 번째하자에 테이블을 만들려면 각각의 선수에 대한 데이터를 저장합니다. 주의 사항을 추가, 기본 키, 어떤을 사용하면 모든 행을는 사실에 의존하는 데 사용할 수있는 고유 필드를위한 레퍼런스로서합니다. 참고 : 또한 모든 행의 기본 키의 데이터에 고유해야합니다을 하나로합니다. 여기서는 우리의 데이터베이스를 만들기 위해 필요한 성명 (전화 gamedata) 및 우리의 playerdata 테이블을합니다.

  mysql> 데이터베이스를 작성 gamedata; mysql>를 사용 gamedata; mysql> 테이블 만들기 playerdata (-> 사용자 이름을 문자 (255) 고유의 안 0, -> 비밀 번호를 문자 (255), -> 나이 int, -> datecreated 타임 스탬프, -> 기본 키 (사용자 이름)); 

여기에 통지의 사용자 이름 줄을 우리가 어떻게 고유의 설정 또한 널 없다. 간단한 용어, 이것은 그것의 값을 포함해야합니다, 그 값은 다른 사용자 이름과 동일해서는 안됩니다 다른 기록을 테이블에서합니다. 참고 : 또한 우리가 테이블의 기본 키를 설정한 사용자 이름 필드에, 우리는이 필드를 검색하는 주로, 어느 한 순간에 나타납니다.

이외에이 정보를 저장하기 위해 어떤 방법을 우리는 또한 친구와 원수가 필요합니다. 이것은 테이블의 링크를 통해합니다. 정상적인 데이터베이스의 링크를 테이블은 정말로 단지 테이블, 그러나 그 주요 목적은 관련 데이터를 보존하기 위해 어떤 방법을 혹은 다른 공간과 데이터베이스를 액세스하는 방법을 최적화합니다 정보.

두 개의 연결 테이블을 만들 자고, 하나는 원수와 관련된 하나를위한 관련 친구와 서로를합니다. 다음은 이것을 달성하기 위해하는 데 필요한 진술을합니다.

참고 사항

링크 테이블이 사용되는 경우는 int 값을 저장하기 위해 최적화된 방법은 신분증 필드가 있고 auto_increment playerdata 테이블의 기본 키. 그것은 결과가 아니라 읽기를 수행하면 선택, 그러나 그것은 귀하의 응용 프로그램 내에서 빠르게합니다. 업데이 트를 할 때 한 선수의 이름, 그것은 깨지지 않습니다 데이터베이스의 무결성을합니다. 또한, 링크를 테이블은 구조가 종종 n 양의 관계가있는 경우에만 사용됩니다 행 하나에서 다른 행을합니다. 하나 밖에있을 경우는 항상 관계 (한 친구 또는 적), 직접 링크를 사용해야합니다.

  mysql> 테이블 만들기 relatefriends (-> 플레이어 숯 (255), -> 친구 숯 (255)); 

도 :

  mysql> 테이블 만들기 relateenemies (-> 플레이어 숯 (255), -> 적을 숯 (255)); 

우리는 이제 데이터베이스에서 테이블을 표시하는 경우 다음과 같은 명령 :

  mysql> 쇼 테이블; 

... 우리가 볼 수있는 우리의 데이터베이스를 현재 3 개의 서로 다른 테이블 - 우리 playerdata 테이블을 포함되며, 두 개의 링크를 테이블을합니다.

이제 데이터를 추가하는 샘플을 보자 플레이어의 데이터 테이블, 그래서 우리는 실험을 수있는 링크를 테이블과 논리를 이해하고 그들을 효과적으로 사용하는 방법. 여기가 바로 우리의 샘플 데이터를 추가하려면 성명 필수 playerdata 테이블 :

  mysql> 삽입할 playerdata 값 -> ( '앤드루', 'qwerty', 20, 0), -> ( '헨리', 'letmein', 34, 0), -> ( '산드라', 'dra33', 19 , 0), -> ( '존', 'j12d', 23, 0), -> ( '제니', 'jen123', 34, 0); 

만약 우리가 playerdata 테이블에서 모든 정보를 선택하십시오 이제 다음과 같은 명령을 사용하여 :

  mysql> playerdata에서 선택 * 

지금은 우리가 일부 샘플 데이터,하자 선수 사이의 관계를 만들려고 데이터베이스에있는 일부합니다. 첫 번째 relatefriends 링크를 테이블에 추가 친구로 헨리는 산드라는 사실을합니다. 여기에 성명이로 기록하기 위해 링크를 추가할 필요합니다 테이블 :

  mysql> 삽입할 relatefriends 값 -> ( '헨리', '산드라'); 

현재 샘플 데이터를 좀 더 추가하자 양쪽 relatefriends 및 relateenemies 링크를 테이블 및 참조 데이터를 우리가 어떻게 조작할 수있습니다. 이 두 문장을 추가하려면 샘플 데이터는 다음과 같습니다 필요합니다 :

참고 사항

친구와 적을 막기 위해가되는 동시에, 관계 테이블을 하나 사용될 수있을 것이다. 단지 추가하는 필드 "적"플래그를, 그리고 만약 그것이 설정, 그것은 그들이 적을; 그렇지 않으면 그들은 친구합니다.

  mysql> 삽입할 relatefriends 값 -> ( '앤드루', '헨리'), -> ( '앤드루', '존'), -> ( '앤드루', '제니'), -> ( '산드라', ' 제니가 '); 

또한 :

  mysql> 삽입할 relateenemies 값 -> ( '앤드루', '산드라'), -> ( '헨리', '제니'), -> ( '헨리', '존'); 

지금은 우리가 우리의 모든 샘플 데이터를, 어디 보자 앤드류는 만약 우리가 사람이 친구를 알아낼 수있는 다음과 같은 성명을 사용하여 :

  mysql> relatefriends는 어디에서 친구를 선택하십시오 플레이어 = '앤드류'; 

이 문장을 실행하면, 모든 언어의 목록을 표시 콘솔을 앤드류는이와 친구가되는 선수.

다시는 우리가 할 수를 정확히 동일한 relateenemies 링크를 테이블합니다. 예를 들어, 우리의 모든 헨리의 원수를 알아낼 수있어 다음과 같은 성명 :

  mysql> relateenemies 어디에 선수를 선택하십시오에서 적을 = '헨리' 

이 데이터를, 만약 우리가 다음에 대한 정보를 더 자세히 알아보세요 헨리의 원수가있는 사용자 이름은 제니, 우리는 다음과 같은 성명을 사용합니다 :

  mysql> playerdata는 어디에서 선택 * 사용자 이름 = '제니'; 
이것은 조지 ionescu 기사를 추가한
면책 조항 : 우리의 웹사이트는이 문서에 포함된 정보에 대한 책임을지지 않습니다. 이 문서가 어떠한 방식 으로든 반영하는 것으로,보기, 의견, 생각이나 신념의 기사 디렉토리 직원합니다.

번역 참고 사항 :이 문서 "관계형 구조화 데이터베이스"는 번역 자동 번역 서비스를 사용합니다. 우리가 진심으로 번역 오류가 발생했습니다 끼쳐 드려 죄송합니다. 이해를 주셔서 감사합니다.

Online: 845 users browsing the articles directory