嗨我正在一個項目中,我必須保存與父子關係的數據。父子數據
的數據結構是這樣的:
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