私の名前は D です。私は 3 人の子供、A、B、C の父親です。私には親 Z がいます。私の親には親 X がいて、兄弟 Y がいます。 Mysql DB。
CREATE TABLE `test_tree` (
`idperson` int(11) NOT NULL,
`name` varchar(45) DEFAULT NULL,
`prime` int(11) DEFAULT NULL,
`product` int(11) DEFAULT NULL,
PRIMARY KEY (`idperson`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
INSERT INTO `temp`.`test_tree`
(`idperson`,
`name`,
`prime`,
`product`)
VALUES
('1', 'x', '2', '2'),
('2', 'z', '3', '6'),
('3', 'y', '17', '102'),
('4', 'd', '5', '30');
注: プライムと製品は、私の家族の親子関係を計算するために使用されます。素数 = 次に利用可能な素数積 = (素数 * 親の積)。素数の各積は、それらの素数でしか割ることができません。
質問: ツリーを作成するために使用できる他の方法は何ですか?また、現在のソリューションとどのように比較しますか?
私の答え:
Solution 1:
**test_tree**
-id pk
-parent_id fk (references id)
-name
Solution 2:
**person**
-id pk
-name
**relation**
-child_id fk (references person.id)
-parent_id fk (references person.id)
For me, solution 2 has redundant table.
そのような関係のテーブルを作成する他の方法を提案できますか?