嗨我正在一个项目中,我必须保存与父子关系的数据。父子数据
的数据结构是这样的:
flight_id child_id Flight_name
1 1 E213
2 2 E333
3 2 E444
飞行1没有child_id
所以它的父ID替换它,飞行2在每个child_id
我必须把父ID 2 child_id
左右。
任何想法我该怎么做?
嗨我正在一个项目中,我必须保存与父子关系的数据。父子数据
的数据结构是这样的:
flight_id child_id Flight_name
1 1 E213
2 2 E333
3 2 E444
飞行1没有child_id
所以它的父ID替换它,飞行2在每个child_id
我必须把父ID 2 child_id
左右。
任何想法我该怎么做?
亲子关系通常以相反方式建模:孩子属于父母。想想看,一个孩子只能有一个父母,这很容易建模;但有许多孩子ID的家长很难模拟。
此外,您可以使用嵌套集a.k.a. MPTT来更轻松地查询儿童/父母。
请参阅http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/和http://en.wikipedia.org/wiki/MPTT。
我使用Php查询保存数据第一我确定如果数据有孩子,如果它有我然后简单插入查询,然后更新它像这样$ query = mysql_query(“insert into test set flightname ='$ flight_code',childid ='0 ““); \t $ child_id = mysql_insert_id(); \t $ query = mysql_query(“update test set flightname ='$ flight_code',childid ='$ child_id'其中flightid ='$ child_id'”); – mishi
通常你不会存储所有的孩子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
请澄清你的问题,因为我完全无法看看你在这里做什么?你希望有一个代码将航班添加到数据库中?你想建立基于关系的数据库结构(它需要两个表)? – Whisperity