SQL이 가본 적이 없는 곳으로 대담하게 가다
몇 년 전에 나는 원시 방송 날짜, 제작 번호, 드라마 제목과 간략한 묘사 등 정보를 포함하는'스타크래프트'시리즈의 목록을 가지고 있었다.
추적하기 어려운 것이 하나 있는데, 그것은 특정한 사람이 몇 집을 썼는지이다.드라마는 여러 사람이 썼기 때문이다.writer라는 열은 여러 사람을 포함해야 하고, 다른 옵션은 writer1, writer2 등이라는 열입니다. 이것은 특정한 writer가 어느 열에 저장되어 있는지 모르기 때문에 도움이 되지 않습니다.
작가와 줄거리 사이의 관계를 다대다관계라고 부른다.한 편에는 많은 작가가 있을 수 있고, 한 작가는 많은 편을 쓸 수 있다.SQL 데이터베이스에서 이러한 구조를 실현하려면 두 테이블 사이에 다중 연결을 만들 수 없기 때문에 세 개의 데이터베이스 테이블이 필요하다.첫 번째 표는 모든 드라마를 포함하고 두 번째 표는 모든 작가를 포함하며 세 번째 표는 연결표라고 하는데 둘 사이의 관계를 포함한다.
우리가 예를 들어 이것이 어떻게 된 일인지 좀 봅시다.'스타크래프트'의 창작자 진 로덴베리(Gene Roddenberry)가 파일럿'우리'를 썼다.따라서 Gene은 id가 1인 writers 테이블에 추가되고, Cage는 id가 1인 Incide 테이블에 추가됩니다.연결표에는'에피소드'와'작자'두 개의 열이 있기 때문에 우리는 이 열에 1과 1을 입력한다.
Select * from Episode e
Join EpisodeWriter ew on e.id = ew.EpisodeId
Join Writer w on w.id = ew.WriterId
단, 귄 쿱과 귄 로덴베리가 우리에 창작 학점을 가지고 있다면, 귄 쿱을 창작표에 추가하고, 줄거리 작성기 표에 추가 항목을 추가해야 한다.데이터베이스 구조를 확장하여 다른 정보를 포함할 때, 나는 이 기초 위에서 더 많은 댓글을 올릴 것이다. 나는 일부 정보를 되돌려 주는 저장 프로세스를 계속 만들 수도 있고, 이를 예로 들어 사용자 인터페이스 작성을 논의할 수도 있다.
Reference
이 문제에 관하여(SQL이 가본 적이 없는 곳으로 대담하게 가다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/funkysi1701/to-boldly-go-where-no-sql-has-gone-before-4fe7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)