父子数据

时间:2012-07-04 09:32:50

标签: php database

您好我正在一个项目中,我必须使用父子关系保存数据。

数据结构如下:

flight_id     child_id      Flight_name 

1               1           E213    

2               2           E333

3               2           E444  

第1次航班没有child_id因此它的父级ID替换了它,2号航班有两个child_id所以在每个child_id中我必须放置父级ID。

知道我该怎么做?

2 个答案:

答案 0 :(得分:1)

父子关系通常以相反的方式建模:孩子属于父母。想一想,一个孩子只能有一个父母,这很容易建模;但是有很多孩子ID的父母很难建模。

此外,您可以使用嵌套集a.k.a. MPTT更轻松地查询儿童/父母。

请参阅http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/http://en.wikipedia.org/wiki/MPTT

答案 1 :(得分:0)

通常,您不会存储所有子ID,而是存储父ID:

CREATE TABLE `flight` (
    `id` int(11) NOT NULL,
    `parent` int(11) DEFAULT NULL,
    `flight_name` varchar(255) NOT NULL,
    PRIMARY KEY (`id`),
    FOREIGN KEY (`parent`) REFERENCES `flight` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

您的数据如下:

id     parent    flight_name 
1      NULL      E213    
2      NULL      E333
3      2         E444  
4      2         E555  
5      2         E666