2009-06-14 6 views
0

나는 음식의 데이터베이스를 가지고 있는데, 카테고리, 하위 카테고리 및 하위 카테고리의 트리 구조로 나누고 싶습니다. 예를 들어,이 구조를 구성하는 가장 좋은 방법은 무엇입니까?

과일 -> 사과 -> 후지, 또는 과일 -> 사과 -> 나는 그 즉시 아이를 보여주기 위해 각각의 상위 페이지를 원하는

은 (과일 페이지 사과, 오렌지와 모든 다른 과일을 보여줍니다

코틀 랜드 사과 페이지는 후지, 코트 랜드 및 모든 다른 사과를 보여줍니다).

또한 각 노드가 모든 상위 노드를 알고 싶습니다. (후지는 부모가 과일 인 부모 사과를 알고 있습니다)

MySQL을 사용하여 나무와 같은 관계를 저장하는 가장 좋은 방법은 무엇입니까?

답변

6

나는 Managing Hierarchical Data in MySQL을 읽는 것이 좋습니다. 당신은 과일의 모든 하위 범주를 표시 할 때, 그리고 당신이 할 수있는

Table category: 

id INT AUTO INCREMENT PRIMARY KEY 
parent_id INT 
name VARCHAR(40) 

:

+0

훌륭한 자원을 - 감사합니다! – Yongho

0

당신은 뭔가를 시도 할 수

SELECT C.* FROM category C WHERE C.parent_id = {$currentCategory} 
0
CREATE TABLE Food (
    Id INT NOT NULL AUTO_INCREMENT, 
    Name CHAR(50) NOT NULL, 
    CategoryId INT, 
    PRIMARY_KEY(Id), 
    FOREIGN KEY (CategoryId) REFERENCES FoodCategory (Id)) 
CREATE TABLE FoodCategory (
    Id INT NOT NULL AUTO_INCREMENT, 
    Name CHAR(50) NOT NULL, 
    ParentCategoryId INT, 
    PRIMARY_KEY(Id), 
    FOREIGN KEY (ParentCategoryId) REFERENCES FoodCategory (Id)) 
관련 문제