2009-06-14 12 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))