1

こんにちは、親子関係でデータを保存する必要があるプロジェクトに取り組んでいます。

データ構造は次のようになります。

flight_id     child_id      Flight_name 

1               1           E213    

2               2           E333

3               2           E444  

フライト 1 には親 ID がないchild_idため、親 ID で置き換えられます。フライト 2 には 2 つchild_idあるため、それぞれにchild_id親 ID を入力する必要があります。

どうすればそれを行うことができますか?

4

2 に答える 2

1

通常、親子関係は逆にモデル化されます。つまり、子は親に属します。考えてみてください。子は親を 1 つしか持つことができません。これは簡単にモデル化できます。しかし、多くの子 ID を持つ親をモデル化するのはかなり困難です。

さらに、Nested Set aka MPTT を使用して、子/親のクエリを簡単にすることができます。

http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/およびhttp://en.wikipedia.org/wiki/MPTTを参照してください。

于 2012-07-04T09:56:38.273 に答える
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  
于 2012-07-04T09:57:35.297 に答える