⊗ppPmDOFR 385 of 447 menu

PHP에서 데이터의 계층적 관계

우리 앞에 아버지와 아들을 저장하는 과제가 있다고 가정해 봅시다. 각 아버지는 한 명의 아들만 가질 수 있으며, 아들 역시 한 명의 아들만 가질 수 있습니다.

데이터를 어떻게 저장할지 생각해야 합니다. 가장 먼저 떠오를 수 있는 아이디어는 두 개의 테이블을 만드는 것입니다: 아버지를 위한 parents와 아들을 위한 sons. 그런 다음 이 테이블들을 어떤 필드로 연결합니다: son_id 또는 parent_id.

그러나 이 아이디어는 그다지 좋지 않습니다. 왜냐하면 동일한 사람이 동시에 아버지이자 아들일 수 있어서 그를 두 테이블 모두에 저장해야 하기 때문입니다. 이는 불편하고, 더 많은 공간을 차지하며, 쉽게 오류로 이어집니다.

더 나은 방법은 테이블을 자기 자신과 연결하는 것입니다: users 테이블을 만들고, 그 안에 모든 사용자를 저장하며 각 사용자에게 son_id 필드를 만들어 같은 테이블에서 아들의 id를 저장하도록 합니다:

users
id name son_id
1 user1 2
2 user2 3
3 user3 null

쿼리

이제 사용자와 그의 아들을 함께 가져오는 쿼리를 작성해 봅시다.

먼저 사용자들부터 가져옵니다:

SELECT * FROM users

이제 사용자에 그들의 아들을 조인합니다. 테이블을 자기 자신과 조인하므로 테이블 이름을 바꿔야 합니다:

LEFT JOIN users as sons

이제 기본 테이블과 이름이 바뀐 테이블 간의 관계를 지정할 수 있습니다:

LEFT JOIN users as sons ON sons.id=users.son_id

이제 필드를 지정합니다:

SELECT users.name as user_name, sons.name as son_name

모두 모아서 다음 쿼리를 얻습니다:

SELECT users.name as user_name, sons.name as son_name FROM users LEFT JOIN users as sons ON sons.id=users.son_id

실습 문제

우리에게 카테고리가 있다고 가정합니다. 각 카테고리는 상위(부모) 카테고리에 속할 수 있으며, 그 상위 카테고리는 다시 자신의 상위 카테고리에 속하고 이런 식으로 계속될 수 있습니다. 저장 구조를 설명하세요.

카테고리와 그 상위(부모) 카테고리를 함께 가져오는 쿼리를 작성하세요.

카테고리와 그 상위(부모) 카테고리, 그리고 조상(할아버지) 카테고리를 함께 가져오는 쿼리를 작성하세요.

카테고리와 그 상위(부모) 카테고리, 조상(할아버지) 카테고리, 증조상(증조할아버지) 카테고리를 함께 가져오는 쿼리를 작성하세요.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부